小编fla*_*ash的帖子

rm 命令可以在删除所有文件之前在 bash 脚本中完成吗?

我编写了一个简单的 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
Run Code Online (Sandbox Code Playgroud)

虽然这在很多时候都很好,但有时我会得到以下结果,看起来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 …
Run Code Online (Sandbox Code Playgroud)

linux bash mount

7
推荐指数
2
解决办法
2649
查看次数

标签 统计

bash ×1

linux ×1

mount ×1