walker的需求是每天1点钟的时候,执行一个shell脚本,下面记录walker用到的基本功能。
1、安装
1
|
yum
install
crontabs
|
2、服务相关
1
2
3
4
5
|
/sbin/service
crond status
#查看任务状态
/sbin/service
crond start
#启动服务
/sbin/service
crond stop
#关闭服务
/sbin/service
crond restart
#重启服务
/sbin/service
crond reload
#重新载入配置
|
3、查看计划任务。基本命令行参数建议使用crontab --help查看,man crontab太繁琐。
1
2
|
crontab
-l
#查看当前用户计划任务
crontab
-u username -l
#查看userx用户的计划任务
|
4、查看任务执行日志。
1
|
tail
-f
/var/log/cron
|
5、/etc/crontab文件里面存放系统计划任务,/var/spool/cron/目录里面按用户存放计划任务。
6、编辑/etc/crontab配置计划任务。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
SHELL=
/bin/bash
PATH=
/sbin
:
/bin
:
/usr/sbin
:
/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * [user-name] command to be executed
0 1 * * * root
/home/walker/test
.sh
|
/var/spool/cron/目录里面的计划任务文件内容格式与上面雷同。区别是,/var/spool/cron/必须指定用户;/etc/crontab是系统计划任务,可以不指定用户。
7、walker还遇到一个问题,调用jar包失败。原因是crontab的环境变量问题,可参考Linux中crontab的坑爹环境变量问题。walker只在脚本中加了下面一句导入环境变量:
1
|
source
/etc/profile
|
这时如果还是手动执行脚本OK,但是crontab死活不执行。可以尝试在crontab中直接引入环境变量解决问题。如:
1
|
0 * * * * . /etc/profile;/bin/sh /home/walker/test.sh
|
相关阅读:关于Shell的source、点(.)和export
*** walker ***
本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1690113如需转载请自行联系原作者
RQSLT