gpt4 book ai didi

linux - 用于验证备份文件夹是否存在的 Bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:59 24 4
gpt4 key购买 nike

我正在尝试创建一种方法来验证我的备份过程。

有一个文件夹包含每天拍摄的备份(快照)/mnt/backup/snapshots/。每个备份都由一个具有以下名称的文件夹表示:

snapshot-YYYYMMHH-HHMMSS-TOKEN-TTTTTTTTTTTTTTTTTTTTTTTTTTTTT

其中 YYYYMMHH-HHMMSS 表示启动快照的时间。此外,如果快照拍摄正确,文件夹中将有一个空的“已完成”文件。

例子:

root@SPTestCache000:~# ls -l /mnt/backup/snapshots/
total 8
drwxr-xr-x 17 root root 4096 2011-10-12 09:29 snapshot-20111012-092902-TOKEN-11610563189691354026753564484829291576
drwxr-xr-x 13 root root 4096 2011-10-12 10:08 snapshot-20111012-100827-TOKEN-11610563189691354026753564484829291576
root@SPTestCache000:~# ls -l /mnt/backup/snapshots/snapshot-20111012-092902-TOKEN-11610563189691354026753564484829291576/
drwxr-xr-x 2 root root 4096 2011-10-12 09:29 SomeTest
-rw-r--r-- 1 root root 18 2011-10-12 09:29 completed

我想要一个可以定期运行的 bash 脚本 (cron),它会检查以下内容:- 是否有不超过 X 小时的快照文件夹。如果存在这样的快照文件夹 - 里面是否有完整的文件?- 否则抛出错误

对于如何进行 NOT OLDER than X hours 检查,您有什么特别的建议吗?

最佳答案

120 = 2 小时:

#!/bin/bash

ok=$(
find /mnt/backup/snapshots -maxdepth 1 -type d -name 'snapshot-*' -mmin -120 |
while IFS= read -r; do
[ -f "$REPLY"/completed ] && {
echo ok
break
}
done
)

[ "$ok" == ok ] ||
printf >&2 'no recent backup found\n'

关于linux - 用于验证备份文件夹是否存在的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7737846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com