2

我创建了一个 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"

我非常感谢您能提供的任何帮助。

4

0 回答 0