2013-01-24 38 views
0

我对Linux真的很陌生,我很抱歉,如果这是基本的,但我已经Google找到没有清晰的例子,我很困惑。 (这个问题涉及到运行CentOS 6的服务器)哪里可以找到Centos 6 cron作业.sh文件

我的问题是:

  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 * * *

但我只是有一个如何把它放在一起有些忐忑所以我不会搞砸了。一个完整的例子或解释或参考链接将不胜感激。

回答

1

我相信cron将执行从脚本取其目录它是在的,因为:

  • 的文件有cron运行的(通常是root如果作业系统为用户配置的执行权限 - 宽的crontab)
  • cron行指定的完整路径脚本

所以,如果你的脚本是/opt/script.sh,在cron指定此:

0 0 * * * /opt/script.sh 

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

请注意,如果这是系统级的crontab(/ etc/crontab中)也应该包括用户名作为执行命令:

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

此外,一些以确保与工作时cron要么在从脚本调用外部命令时使用完整路径,要么设置PATH变量(无论是在脚本本身还是在crontab文件中)。这是必需的,因为通常cron作业运行的环境相当受限制。

要记住的另一件事是,如果任何输出是由cron作业生成的,则此输出将通过邮件发送给执行cron的用户。因此,为了从脚本获得一些反馈,您必须设置系统,以便邮件最终放置在由人类读取的邮箱中,或者脚本将其全部输出发送到日志文件或系统日志。

+0

谢谢,这可以帮助我很多 – Mike