[英]Linux Shell Script - Mounting and Backing Up Files
I'm writing my first shell script.我正在编写我的第一个 shell 脚本。 I want to check if a filesystem is mounted.
我想检查是否安装了文件系统。 If so, then backup the documents from my main drive to the backup that is mounted.
如果是这样,那么将文件从我的主驱动器备份到安装的备份。 If not, mount the filesystem, then backup the documents.
如果没有,则挂载文件系统,然后备份文件。
#!/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
I executed the script, yet all I got was a lot of text.我执行了脚本,但我得到的只是大量文本。 It didn't perform as I wanted.
它没有按我想要的那样执行。 Did I not use the right options or arguments for one of the functions?
我是否没有为其中一个函数使用正确的选项或参数?
I suggest such a script for you:我为你推荐这样一个脚本:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.