加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 在删除所有文件之前,rm命令是否可以在bash脚本中完成?

发布时间:2020-12-13 18:23:04 所属栏目:Linux 来源:网络整理
导读:我写了一个简单的bash脚本,每天将某些文件备份到备份挂载,并保留最后3天的备份.这显然太简单了,因为我偶尔会得到奇怪的行为,这可以通过在rm完成之前第一个mv被解释来解释. 这是脚本: #!/bin/bashmount /mnt/backupswhile [ ! -d /mnt/backups/dailyBackup-0
我写了一个简单的bash脚本,每天将某些文件备份到备份挂载,并保留最后3天的备份.这显然太简单了,因为我偶尔会得到奇怪的行为,这可以通过在rm完成之前第一个mv被解释来解释.

这是脚本:

#!/bin/bash

mount /mnt/backups

while [ ! -d /mnt/backups/dailyBackup-0 ]
do
        echo "Backup mount not present,sleeping..."
        sleep 30
done

rm -r /mnt/backups/dailyBackup-2
mv /mnt/backups/dailyBackup-1 /mnt/backups/dailyBackup-2
mv /mnt/backups/dailyBackup-0 /mnt/backups/dailyBackup-1

dirname="/mnt/backups/dailyBackup-0"
mkdir $dirname

cd /
rsync -qr --stats root etc var $dirname

umount /mnt/backups

虽然这很好但很多时候,我有时会得到以下内容,看起来像dailyBackup-1在dailyBackup-2完成删除之前被移动了.如果发生了什么,防止它的最佳方法是什么?

/mnt/backups/dailyBackup-0:
total 0
drwxrwxrwx 1 root root 0 2010-12-07 03:27 var
drwxrwxrwx 1 root root 0 2010-12-07 02:39 root
drwxrwxrwx 1 root root 0 2010-12-07 02:38 etc

/mnt/backups/dailyBackup-1:
total 0
drwxrwxrwx 1 root root 0 2010-12-06 03:26 var
drwxrwxrwx 1 root root 0 2010-12-06 02:32 root
drwxrwxrwx 1 root root 0 2010-12-06 02:32 etc

/mnt/backups/dailyBackup-2:
total 0
drwxrwxrwx 1 root root 0 2010-12-07 02:36 var
drwxrwxrwx 1 root root 0 2010-12-05 03:21 dailyBackup-1

解决方法

问题很可能是rm失败了,请注意var仍然存在于dailyBackup-2中,
很可能是因为那里的某些文件无法删除.

作为编写系统管理shellcript的一般说明:

a)始终确保检查脚本的(错误 – )输出,
你将通过cronjobs的邮件自动收到它,除非你的
电子邮件设置已损坏

b)始终确保您处理可能发生的任何和所有错误
(例如,rm或mv失败)
将set -e置于脚本之上是个好主意,
这将使shell在遇到第一个未处理的错误时退出
(为了调试,还要添加set -x,它将打印正在执行的所有命令,
所以你可以看到脚本在做什么)

并回答你原来的问题:在删除所有文件之前rm将永远不会退出,或者更正确地说,在unlink()之前系统调用它找到的最后一个文件完成.(唯一的情况是我可以想象在取消链接后文件可能仍然存在的位置可能是一些不起眼的错误的网络文件系统…)但rm退出并不意味着所有文件都被成功删除(即使你是root并使用-fr(你甚至不使用-f)),例如,如果文件被标记为不可变的ext *文件系统,或者在rm遍历树时新创建的文件.rm将报告错误消息和不成功的返回统计信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读