我使用 rsync 来备份我的网站文件,使用 --link-dest 从以前的 rsync 备份中复制。
rsync -zavx -e 'ssh -p22' \
--numeric-ids \
--delete -r \
--link-dest=../"$latest_backup" "$rhost:$rhost_source" "$local_dest";
Run Code Online (Sandbox Code Playgroud)
我注意到带有非 ascii 字符的文件看起来已经转换了它们的字符,因此 rsync 正在删除它们然后重新下载它们。
下面是一个例子:
deleting public_html/images/made/96096a4645d59a3e/Moulin_a?\#200_vent_Bourgogne_DBW1901_680_680_s_c1.jpg
public_html/images/made/96096a4645d59a3e/Moulin_à_vent_Bourgogne_DBW1901_1200_801_80.jpg
Run Code Online (Sandbox Code Playgroud)
是否可以阻止 rsync 转换字符?
是否可以检查 rsync 是否成功,如果不成功,可能会收集错误?
当我使用 --link-dest 时,我认为这可能更难检测。
我对 bash 还很陌生,所以任何指导都将不胜感激。
这是我的脚本的精简版:
#!/bin/bash
set -e
site_host=(
"site1@grid.co.uk"
"site2@grid.co.uk"
)
backup_dest=(
"/Users/computername/Desktop/rsync/test1.co.uk"
"/Users/computername/Desktop/rsync/test2.co.uk"
)
now=`date "+%d/%m/%Y %H:%M:%S"`
today=`date +"%d-%m-%Y"`
yesterday=`date -v -1d +"%d-%m-%Y"`
log="/Users/computername/Desktop/rsync/rsync.log"
site_count=${#site_host[@]}
for (( i = 0; i < site_count; i++ )); do
site_source="${site_host[$i]}:~/public_html"
site_dest="${backup_dest[$i]}/$today/"
rsync -zavx -e 'ssh -p22' \
--numeric-ids \
--delete -r \
--link-dest=../$yesterday $site_source $site_dest
echo "$now - File Backup Completed - ${backup_dest[$i]}/$today" >> $log
done
Run Code Online (Sandbox Code Playgroud)
更新:
#!/bin/bash
set -e
site_host=(
"site1@grid.co.uk"
"site2@grid.co.uk"
)
backup_dest=(
"/Users/computername/Desktop/rsync/test1.co.uk" …Run Code Online (Sandbox Code Playgroud) 我正在使用 bash 和 rsync 创建和存储我网站的备份。我将这些存储在“ dd-mm-yyyy”的日期文件夹中。
如果这些文件夹超过 x 天(目前是 2 天,但会更长),我一直在尝试使用以下方法删除它们。
find /path/to/files -type d -mtime +2 -name [0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9] -exec rm -rf {} \; -prune
Run Code Online (Sandbox Code Playgroud)
以上工作,但只是想仔细检查我在这里没有做明显错误的事情。
然后我想检查是否找到了任何文件夹,如果它们被删除,是哪些。
我想知道这是否会像下面这样简单来检查是否为真:
if find /path/to/files -type d -mtime +2 -name [0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9] -exec rm -rf {} \; -prune; then
...
fi
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何输出被删除的文件夹路径。