0

我对 Linux 真的很陌生,如果这是初级的,我深表歉意,但我在谷歌上找到了不清楚的例子,我很困惑。(问题与运行 CentOs 6 的服务器有关)

我的问题是:

  1. 我不确定应该在哪个默认目录中存储 .sh 文件,以便 cron 作业可以运行它。
  2. 下面 .sh 文件中我的代码的语法和顺序是否正确?

我已经测试了 TSQL 和它的罚款。

#! SQL="DELETE FROM messages WHERE date < DATE_SUB(CURDATE(), INTERVAL 7 DAY)"

MYSQL_USER="root"
MYSQL_PASS="xxxxxx"
MYSQL_DB="mydb"

我知道 cron 应该包含这个以每天执行此操作:

0 0 * * *

但我只是有点担心如何把它们放在一起,所以我不会把事情搞砸。一个完整的例子或解释或参考链接将不胜感激。

4

1 回答 1

1

我相信cron它将从它所在的任何目录执行脚本,因为:

  • 该文件对运行为的用户具有执行权限cron(通常root如果在系统范围的 crontab 中配置了作业)
  • cron行指定脚本的完整路径

因此,如果您的脚本是 /opt/script.sh,请在 cron 中指定:

0 0 * * * /opt/script.sh

将在每天上午 12:00 执行 script.sh。

请注意,如果这是系统范围的 crontab (/etc/crontab),它还应该包含执行命令的用户名:

0 0 * * * username /opt/script.sh

此外,在使用时要确保在cron从脚本调用外部命令时使用完整路径或设置PATH变量(在脚本本身或crontab文件中)。这是必需的,因为通常运行 cron 作业的环境非常有限。

要记住的另一件事是,如果 cron 作业生成任何输出,则此输出将通过邮件发送给执行 cron 的用户。因此,要从脚本获得一些反馈,您必须设置系统以使邮件消息最终进入一个由人阅读的邮箱,或者脚本将其所有输出发送到日志文件或系统日志。

于 2013-01-24T14:37:04.267 回答