bash – 仅在安装文件系统时才进行RSync
发布时间:2020-12-15 18:23:41 所属栏目:安全 来源:网络整理
导读:我想设置一个cron作业来将远程系统rsync到备份分区,例如: bash -c 'rsync -avz --delete --exclude=proc --exclude=sys root@remote1:/ /mnt/remote1/' 我希望能够“设置它并忘记它”但是如果/ mnt / remote1被卸载了怎么办? (重启后或其他什么)我想在没有
我想设置一个cron作业来将远程系统rsync到备份分区,例如:
bash -c 'rsync -avz --delete --exclude=proc --exclude=sys root@remote1:/ /mnt/remote1/' 我希望能够“设置它并忘记它”但是如果/ mnt / remote1被卸载了怎么办? (重启后或其他什么)我想在没有挂载/ mnt / remote1的情况下出错,而不是填满本地文件系统. 编辑: #!/bin/bash DATA=data ERROR="0" if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1$"; then ERROR=0 else if mount /dev/vg/$1 /mnt/$1; then ERROR=0 else ERROR=$? echo "Can't backup $1,/mnt/$1 could not be mounted: $ERROR" fi fi if [ "$ERROR" = "0" ]; then if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1/$DATA$"; then ERROR=0 else if mount /dev/vg/$1$DATA /mnt/$1/data; then ERROR=0 else ERROR=$? echo "Can't backup $1,/mnt/$1/data could not be mounted." fi fi fi if [ "$ERROR" = "0" ]; then rsync -aqz --delete --numeric-ids --exclude=proc --exclude=sys root@$1.domain:/ /mnt/$1/ RETVAL=$? echo "Backup of $1 completed,return value of rsync: $RETVAL" fi if cut -d' ' -f2 /proc/mounts | grep '^/mnt/remote1$' >/dev/null; then rsync -avz ... fi 从/ proc / mounts获取已安装分区的列表,仅匹配/ mnt / remote1(如果已挂载,则将grep的输出发送到/ dev / null),然后运行rsync作业. 最近的greps有一个-q选项,您可以使用它而不是将输出发送到/ dev / null. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- twitter-bootstrap – 如何在Bootstrap 3中创建1/5列网格
- bootstrap-datetimepicker时间插件控制
- angularjs – Typescript 1.4中的AppGyver和Angular Contro
- 在scala中以自定义的特征调用超类的方法
- angularjs – 错误:[$compile:multidir]多个指令
- 从Vim中的光标下的完整路径打开文件
- 如何根据某些条件替换Scala中的微风矩阵元素?
- angular – 如何在自定义组件内转换输入数据?
- angular nodejs npm
- 抛弃WebService 在.NET4中用jQuery调用WCF