从https://rsync.samba.org/examples.html,以下示例中有两个备份,其中第一个备份由find
和完成cp
,第二个备份由 完成rsync
。我的问题是关于第一次备份。
我每天晚上都使用 rsync 通过调制解调器链接备份我妻子的主目录。 cron 作业看起来像这样
#!/bin/sh cd ~susan { echo date dest=~/backup/`date +%A` mkdir $dest.new find . -xdev -type f \( -mtime 0 -or -mtime 1 \) -exec cp -aPv "{}" $dest.new \; cnt=`find $dest.new -type f | wc -l` if [ $cnt -gt 0 ]; then rm -rf $dest mv $dest.new $dest fi rm -rf $dest.new rsync -Cavze ssh . samba:backup } >> ~/backup/backup.log 2>&1
请注意,此脚本的大部分内容与 rsync 无关,它只是创建每日备份苏珊的作品在 ~susan/backup/ 目录中这样她就可以检索上周的任何版本。
最后一行通过调制解调器链接将她的目录 rsync 到主机 samba。请注意,我使用 -C 选项,它允许我向 .cvsignore 添加条目以获取不需要备份的内容。
我的问题是
“在 ~susan/backup/ 目录中”是否由“dest=~/backup/
date +%A
”指定?~
in 是否表示dest
运行脚本的用户的主目录,该用户可能不是 Susan,所以~
可能不表示~susan
?是否指定“每日备份”
\( -mtime 0 -or -mtime 1 \)
?是否\( -mtime 0 -or -mtime 1 \)
意味着文件在过去 48 小时内修改,而不是过去 24 小时内修改?
谢谢。
答案1
“在 ~susan/backup/ 目录中”是否由“dest=~/backup/date +%A”指定?
是的,所以你是对的,实现与规范不太相符。
dest 中的 ~ 是否表示运行脚本的用户的主目录,该用户可能不是 Susan,所以 ~ 可能不表示 ~susan?
是的。但该脚本需要运行 assusan
或root
无论如何,以确保访问 Susan 的所有文件。它可能是由苏珊经营(或cron
代表她)。
“每日备份”是否由( -mtime 0 -或 -mtime 1 )指定?
我认为“每日”可能是由运行脚本的内容决定的cron
(或者现在是 systemd 计时器)。
( -mtime 0 - 或 -mtime 1 ) 是否表示在过去 48 小时内而不是过去 24 小时内修改的文件?
是的。-mtime 0
表示“与现在相比,其修改时间戳,向下舍入到最近的 24 小时,为 0 × 24 小时”,对于 也是如此-mtime 1
,因此这会找到过去 48 小时内修改的所有内容(嗯,严格小于 48 小时)。您需要它来捕获完整 24 小时的变化,同时考虑到日常作业的开始时间变化。