【问题标题】:Linux Crontab: doing no effectLinux Crontab:没有效果
【发布时间】:2011-12-04 15:14:28
【问题描述】:

已经制作了很好的备份脚本:制作备份 zip 文件,然后通过 ftp 将其上传到另一台服务器。它位于:/home/www/web5/backup/backup

然后我决定把这个脚本放到 crontab 中自动完成。 我正在做(以 root 身份)

crontab -e

在我输入的空白​​行上:

*/1 * * * * /home/www/web5/backup/backup

Escape key, :wq!, Enter

我将其设置为每分钟完成一次以对其进行测试。 然后转到 FTP 文件夹,脚本将文件上传到该文件夹​​。我在等待,但什么也没有发生:我的 Total Commander 每次刷新后目录都是空的。

但是当我手动执行/home/www/web5/backup/backup 时(也以 root 身份),它工作得很好,我在 FTP 上看到了新文件。

怎么了?这个服务器是一种遗产,所以我可能并不知道它的一切。先去哪里查?操作系统是

Linux s090 2.6.18.8-0.13-default

(一种非常古老的 CentOS)。 感谢您的帮助!

UPD:/home/www/web5/backup/backup 具有 chmod 777 UPD2:/var/log/cron 不存在。但是/var/log/目录存在,里面有apache、mail等的日志。

【问题讨论】:

  • 当我遇到这样的问题时,通常是因为某些环境变量(例如,PATH)在 cron 下与交互式 shell 下不同。如果您的 cron 没有通过电子邮件将日志发送到 root,请尝试附加 2>&1 >/tmp/backup.log,以便您可以看到脚本的任何输出/错误。
  • 日志应该出现在 /var/log/syslog 之类的。

标签: linux centos crontab


【解决方案1】:

*/1 可能是问题所在。只需使用 *.

* * * * * /home/www/web5/backup/backup

另外,确保/home/www/web5/backup/backup 可以与chmod 775 /home/www/web5/backup/backup 一起执行

也检查/var/log/cron。这可能会显示导致修复的错误。


来自Crontab – Quick Reference

  • Crontab 环境

cron 从用户的 HOME 调用命令 带有 shell 的目录 (/usr/bin/sh)。 cron 提供默认值 每个 shell 的环境,定义:

HOME=user’s-home-directory
LOGNAME=user’s-login-id
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh

希望执行其 .profile 的用户必须明确这样做 在 crontab 条目中或在该条目调用的脚本中。

【讨论】:

  • 好吧,/1 本来就不是一个部门。充其量它类似于一个模运算(但实际上,这不是因为 POSIX 允许例如 3/4 意思是 3,7,11,15...
  • @sehe 你说得对,crontab 语法很难,人们将 /n 误解为除法,所以我想我会以这种方式引用它来说明一点,但准确性可能是一个更好的主意。固定答案。
  • @ABTMOT 在 /var/log/ 中执行 ls 以查看是否存在带有单词 cron 的文件/目录,它可能不完全命名为 cron,它可能是 cron.log 或 cron/crontab .log等
  • 日志似乎已被禁用。我在读取 syslog 配置文件时发现了它。在我启用它之后,它的脚本开始工作。谢谢大家的帮助。
  • 非常酷,很高兴你解决了这个问题@ABTOMAT!如果您不介意分享,那么日志中的哪些内容导致您进行了修复?
猜你喜欢
  • 1970-01-01
  • 2015-06-28
  • 2018-11-30
  • 2019-09-11
  • 2011-03-12
  • 2016-03-01
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
相关资源
最近更新 更多