【问题标题】:Backup script on crontab not workingcrontab 上的备份脚本不起作用
【发布时间】:2015-02-07 13:24:54
【问题描述】:

我有一个脚本来备份我的 cvs,它只是简单地 tar 到 CVS 目录,这就是我使用的脚本:

#!/bin/bash

CVS_ROOT="/home/cvs/data"

echo "=======================================" >> cvs_backup.log
echo "            CVS BACKUP START           " >> cvs_backup.log
echo "=======================================" >> cvs_backup.log
date >> cvs_backup.log
tar -czf cvs_backup.tar.gz $CVS_ROOT
echo "=======================================" >> cvs_backup.log
echo $(date '+%Y-%m-%d %H:%M') "End Backup" >> cvs_backup.log
echo "=======================================" >> cvs_backup.log

如果我使用 ./backupScript.sh 执行脚本,它会工作并生成我的 .tar.gz 文件,如果我执行 /home/cvs/backups/backupScript.sh 也是如此,但是当我使用 crontab 自动执行该任务时(root,脚本也对每个人都有执行权限),它不起作用。我的 crontab 如下所示:

0 5 * * 1-5  /home/cvs/backup/cvs_backupScript.sh

我也试过这个:

15 16 * * 1-5  /home/cvs/backup/cvs_backupScript.sh 2>/home/cvs/backup/errorBackup.log >/home/cvs/backup/output.log

生成了输出文件,但其中没有任何内容。

谢谢大家。

【问题讨论】:

  • 你确定你调用的是正确的脚本吗?我在这里看到两个名称:cvs_backup_temp.shbackupScript.sh
  • 是的,我确定,backupScript 只是我以前在 SO 中写的一个名字,感谢您的建议,我现在会更正它。
  • 1) 检查 PATH(cron 脚本不同)2) 您可以为 cron 脚本设置日志记录。
  • 好的!我做了一个测试:创建了一个虚拟脚本,它只是在 dummy.txt 上回显一个 dummytest,我在 crontab 上进行了设置来执行它,但它也没有工作。那么,我该如何解决您的意思的 PATH 问题?
  • 只使用echo 到临时文件的脚本绝对可以工作。再次检查该脚本。您期望输出 cvs tarball 在哪里,因为此脚本没有设置它只是在脚本运行的任何位置使用的位置(对于 cron,这不是一个好的默认值)。

标签: bash ubuntu backup crontab tar


【解决方案1】:

只需将所有路径更改为绝对路径而不是相对路径即可解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-11
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2017-10-20
    • 1970-01-01
    相关资源
    最近更新 更多