我创建了一个 bash 脚本,通过 cygwin cron 将文件夹备份到远程位置,但是我遇到了问题。最后的脚本将执行这样的命令
/usr/bin/tar -zcvf //192.168.1.108/Backup/Folder/Folder.Backup.2015-12-03.1219.tar.gz /cygdrive/d/Folder
虽然当我使用它生成的命令然后在 cygwin bash shell 的上下文中执行它时它可以正常工作,但是当我通过 cron 作业运行它时它会失败,因为它不能正确识别远程位置路径。如果我将路径更改为本地/cygdrive
位置,或者~/
即使通过 cron 也可以正常工作,所以不知何故,我认为 cygwin 在其 cron 环境中没有正确查看网络共享。
有什么想法可以解决这个问题吗?
这是我的 bash 脚本
#!/usr/bin/bash
#the path needs to be set to execute gzip command or tar command breaks
export PATH=$PATH:/usr/bin:/bin:/usr/local/bin:/usr/local/sbin:/sbin
if [ $# -ne 3 ]
then
echo "USAGE: backup-clients <path> <name_prefix> <source>";
exit 1;
fi
DATE=`date "+%Y-%m-%d.%H%M"`;
FILEPATH="$1/$2.Backup.$DATE.tar.gz";
COMMAND="/usr/bin/tar -zcvf $FILEPATH $3";
echo "COMMAND="$COMMAND;
eval $COMMAND;
我用命令运行
/usr/bin/bash /cygdrive/d/mybackupscript.bash "//192.168.1.108/Backup/Folder" "Folder" "/cygdrive/d/Folder"
我非常感谢您能提供的任何帮助。