我正在撰寫我的第一個 shell 腳本。我想檢查是否安裝了檔案系統。如果是這樣,然后將檔案從我的主驅動器備份到安裝的備份。如果沒有,則掛載檔案系統,然后備份檔案。
#!/bin/bash
# Check if linux_backup filesystem is mounted
# Mount filesystem if not mounted already, and then backup documents
docs= "/home/user1/Documents"
mount= "/run/media/user1"
docsbackup= "/run/media/user1/linux_backup/home/user1/Documents"
filesystem= "/dev/sdc3"
sync_files() {
SOURCE=$1
TARGET=$2
sudo rsync --progress -r --update -aAXv $SOURCE $TARGET
}
if mount | awk '{if ($3 == "/run/media/user1") { exit 0}} ENDFILE{exit -1}';
then
echo "linux_backup is mounted"
sync_files $docs $docksbackup
else
echo "linux_backup is not mounted. Will mount now"
mount $filesystem $mount
sync_files $docs $docksbackup
fi
我執行了腳本,但我得到的只是大量文本。它沒有按我想要的方式執行。我是否沒有為其中一個函式使用正確的選項或引數?
uj5u.com熱心網友回復:
我為你推薦這樣一個腳本:
docs="/home/user1/Documents"
mount="/run/media/user1"
backup="/run/media/user1/linux_backup/home/user1/Documents"
device="/dev/sdc3"
sync_files() {
SOURCE=$1
TARGET=$2
sudo rsync --progress -r --update -aAXv $SOURCE $TARGET
}
# Check if FS is mounted
if grep -qs "/run/media/user1" /proc/mounts; then
# Device is mounted
sync_files $docs $docksbackup
else
# Device isn't mounted, mounting...
mount $mount $device
# Back upping
sync_files $docs $docksbackup
fi
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323966.html
