前两天工作同事问我要春节期间的某个功能的使用情况;统计的过程是写一个shell脚本,在日志中进行计数就行了;但是从早到晚做这样的工作,真的是有一些浪费时间,所以我就在想有没有一个可以定时每天跑一次的任务,去执行这个脚本;这样我就可以解放出来一些零碎的时间,去做自己想做的事儿了
通过网上的资料,查到有这样的一个命令 crontab ,可以满足我的需求;找了很多相关的文章,为了以后使用方便,同时也是对自己学习的一个总结,所以在这里记录一下;方便后来者。
操作系统是: CentOS 6.4
本地没有cron命令需要安装
yum install vixie-cron
yum install crontabs
service crond status
常用的cron操作如下:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
crontab 是一种可视化的cron配置,很详细的用法可以参考这里
crontab 的操作:
crontab -e 用来编辑在/etc/crontab文,将要安调度时间的任务填写在这个文里,用法和vim一样,同时在保存的时候,会对每一行的任务进行语法检查
crontab -l 用来查看/etc/crontab 有哪些任务
crontab -r 用来删除任务
这里面参数的文章里,有一个地方是与我的实际情况不太一样的,就是在crontab文中
文章里说是 ” 调度时间 用户 command “这样的格式 ,但是我这个版本的系统里,这样的格式是错误的,不可以使用的,我用的是 ”调度时间 command“ 格式才生效
其中要注意的是,command 我用的是全路径命令
在这里补充一下 查找一个命令的全路径可以用
whereis命令 如: whereis grep
which命令 如: which grep
可以在/var/log/corn 文中看到是否执行了任了;
如何将执行任务后的结果保存到一个文件中呢?有两种方法
1、自己编写一下shell脚本,在脚本中将结果重定向到一个文中
2、在crontab中 调度时间 command >> 重定向的目标文 2>&1
2中的面的2>&1 是必须的