小编ccd*_*ies的帖子

rsync 非 ASCII 字符

我使用 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 shell-script filenames

6
推荐指数
1
解决办法
1856
查看次数

检查 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)

rsync shell-script exit-status

3
推荐指数
1
解决办法
3274
查看次数

检查文件是否被删除

我正在使用 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)

但是我不确定如何输出被删除的文件夹路径。

find shell-script files

1
推荐指数
1
解决办法
2730
查看次数

标签 统计

shell-script ×3

rsync ×2

exit-status ×1

filenames ×1

files ×1

find ×1