在哪里找到Centos 6 cron job .sh文件

时间:2013-01-24 11:12:09

标签: linux cron

我对Linux很陌生,如果这是初步的,我会道歉,但是我让谷歌找不到清晰的例子,我很困惑。 (该问题与运行CentOs 6的服务器有关)

我的问题是:

  1. 我不确定应该存储.sh文件的默认目录是什么,以便cron作业可以运行它。
  2. 我的代码在.sh文件中的语法和顺序是否正确?。
  3. 我测试了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 * * *

    但我只是对如何将它们放在一起感到忧虑,所以我不会搞砸。非常感谢完整的示例或解释或参考链接。

1 个答案:

答案 0 :(得分:1)

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

  • 该文件具有cron运行的用户的执行权限(如果在系统范围的crontab中配置了作业,通常为root
  • 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的用户。因此,要从脚本获得一些反馈,您必须设置系统,以便邮件消息最终出现在人类读取的邮箱中,或者脚本将其所有输出发送到日志文件或系统日志。