开发 bash backup.sh 用于 linux 和 cygwin 之间的 rsync

开发 bash backup.sh 用于 linux 和 cygwin 之间的 rsync

我在使用 ispconfig 3 的 debian 10 服务器上工作,备份文件位于/var/backup/web*/*"Today"*. (例如:/var/backup/web30/db_c1gifts_2020-07-25_00-07.sql.gz

我在 Windows 10 上安装 cygwin。

我想知道我的 backup.sh 中的错误在哪里(在我将在 cygwin 中创建一个 crontab 之后)

#!/bin/bash
now=$(date +"%Y-%m-%d");
rsync -azvr -e 'sshpass -p "myloginpasswd" ssh -p 1505 -o StrictHostKeyChecking=no' [email protected]:"/var/backup/web*/*'${now}'*"  /cygdrive/g/var/var-backup-${now}

此时,如果我尝试此命令行,我会收到错误

rsync: change_dir "/var/backup/web*" failed: No such file or directory (2)

sent 8 bytes  received 88 bytes  192.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1805) [Receiver=3.2.0dev]

但此命令行有效:

rsync -azvr -e 'sshpass -p "myloginpasswd" ssh -p 1505 -o StrictHostKeyChecking=no' [email protected]:/var/backup/web*/*  /cygdrive/g/var/var-backup-${now}

但我收到了所有文件。

答案1

解决方案是替换这个

"/var/backup/web*/*'${now}'*" 

经过"/var/backup/web*/*${now}*"

它工作完美

相关内容