Ubuntu下crontab命令的用法

cron是一个Linux下的后台进程,用来定期的执行一些任务。不同的Linux系统,命令稍微有区别,此命令对ubuntu系统有效。

 

想要让cron执行你指定的任务,首先就要编辑crontab文件。crontab是一个文本文件,用来存放你要运行的命令。你可以以下命令

 

 crontab -e  

 

来打开你的用户所属的crontab文件。第一次用这个命令,会让你选择文本编辑器,我选的是vim。选定的编辑器也可以使用

 

select-editor  

 

命令来更改。这点命令行中已经有足够的提示,就不多说了。

 

 这是使用nmon 来自动采集服务器的性能指标,可以把它加入你的crontab中,然后保存退出。

 

 

保存了crontab之后,我们还需要重启cron来应用这个计划任务。使用以下命令:

 

sudo service cron restart  

 

crontab的格式解释:

 

例子:

  1. * * * * *                  # 每隔一分钟执行一次任务  
  2. 0 * * * *                  # 每小时的0点执行一次任务,比如6:00,10:00  
  3. 6,10 * 2 * *            # 每个月2号,每小时的6分和10分执行一次任务  
  4. */3,*/5 * * * *          # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06  

 

 

crontab中的输出配置

crontab中经常配置运行脚本输出为:>/dev/null 2>&1,来避免crontab运行中有内容输出。
shell命令的结果可以通过‘> ’的形式来定义输出
/dev/null 代表空设备文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么重定向输出语句的含义:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
 
遇到的问题:
脚本手动可以运行,但是crontab的定时任务无法运行,因为运行crontab,必须使用绝对路径,然后我把路径都改成绝对路径了。

在crontab的执行环境变量中,没有相应用户设置的环境变量,你需要手动设置一下环境变量,才能让它生效。

posted @ 2016-09-23 14:01  julieyuan  阅读(299)  评论(0编辑  收藏  举报