【发布时间】:2011-10-06 20:40:06
【问题描述】:
我使用 crontab -e 添加以下内容:
36 * * * * /root/Backup/backup.sh
但它不起作用!
我在 syslog 中找到了这个,但它实际上并没有运行:
Oct 6 15:36:01 ubuntu CRON[7685]: (root) CMD (/root/Backup/backup.sh)
如果我直接运行它,我确定我的脚本可以成功运行。
#
# define a function to create directory
#
fnCreateFolder()
{
if [ ! -d $1 ]; then
mkdir $1
echo "New directory, '$1', is created"
fi
}
############################################################################
#
# Full pathname to binaries to avoid problems with aliases and builtins etc.
#
DATECMD="/bin/date"
RMCMD="/bin/rm"
subdir=`${DATECMD} +%Y-%m-%d`
if [ ! -d "$subdir" ]; then
fnCreateFolder "$subdir"
fi
############################################################################
subdir=`${DATECMD} +%Y-%m-%d`
fnCreateFolder "$subdir"
datetime=`${DATECMD} +%Y-%m-%d_%Hh%Mm%Ss_%p`
echo "date-time: $datetime"
backupname="Backup@$datetime.sql"
# backup DB
mysqldump -u'sun' -p'sun2010fyp' smartward > $backupname
echo "start tar cvzf Backup($datetime).tar.gz $backupname"
# zip the backup file
tar cvzf "Backup($datetime).tar.gz" "$backupname"
echo "finished zip $backupname as Backup($datetime).tar.gz"
# move tar file to dest folder
echo "& move it to the destination directory"
mv "Backup($datetime).tar.gz" "$subdir"
# & remove the backup file after zipping it
${RMCMD} -f "$backupname"
echo "finally removed $backupname"
#DONE
【问题讨论】:
-
也许你的脚本依赖于一个环境变量,它存在于你的 shell 中,但不存在于由 cron 启动的 shell 中?
-
但是当我用 echo 替换它时没有打印 Hello...所以我认为它与我的脚本无关
-
将输出从 echo 重定向到文件:
echo "Hello" > /tmp/hello.txt。这将向您证明 echo 是否成功。 -
成功!!!Thx 但是它重定向了backup.sh的输出,它只创建了空文件....(我在backup.sh中有echo语句)