【发布时间】:2018-03-31 16:33:29
【问题描述】:
如果我不小心修改/删除了重要文件,我的 linux PC 会使用由 cron 执行的脚本进行每日备份,其中包含以下行。
rsync --checksum --recursive ${source} ${dest}/$i --link-dest=${dest}/$((i-1))
(${source}是documents文件夹的路径,${dest}/n是第n次备份的路径。)
使用--link-dest 选项有很大的优势,如果您备份一个 3 GB 文件夹,更改小文件并再次备份,两个备份加起来需要 3 GB 磁盘空间,而不是运行 rsync 而不需要 6 GB --link-dest 选项。
我正在努力为 Windows 编写一个类似的脚本:我可以只使用 cp -r powershell 命令(或 xcopy cmd 命令),但该命令没有类似于 rsync 的 --link-dest 选项的选项。使用适用于 windows 的 linux 子系统执行 rsync 命令是可行的,但 windows 的 linux 子系统内的 cron.daily 文件夹中的脚本每天都会执行。
TLDR:rsync -r pathA pathB --link-dest pathC 的 windows 等效项是什么
PS:如果有人想要 linux 版本的脚本用于自己的备份,这里是:
#!/bin/bash
source=/home/username/documents
dest=/myBackup
if [ "$1" == "--install" ] ; then
echo "installing..."
cp $0 /etc/cron.daily/myBackupScript
mkdir $dest
echo "installed"
exit 0
fi
for i in {0..9999}; do
if [ ! -e ${dest}/$i ]; then
echo "Copying to " ${dest}/$i
if [ -d ${dest}/$((i-1)) ]; then
rsync --checksum --recursive ${source} ${dest}/$i --link-dest=${dest}/$((i-1))
else
rsync --checksum --recursive ${source} ${dest}/$i
fi
DATE=`date +%Y-%m-%d__%H:%M:%S`
touch ${dest}/$i/$DATE
exit 0
fi
done
echo "unable to do backup"
exit 4
【问题讨论】:
-
rsync有windows版本
标签: windows powershell backup rsync backup-strategies