借助linux下自带的crontab即可实现定时任务。
crontab [-u username] [-l|-e|-r]
参数:
-u: 只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度;
-e: 编辑crontab 的工作内容;
-l: 查阅crontab的工作内容;
-r: 删除所有的crontab的工作内容,若仅要删除一项,请用-e去编辑。
crontab -e
#此时会进入vi的编辑界面让你编辑工作。注意到,每项工作都是一行。
0 12 * * * bash xx.sh //你要执行的shell脚本或其它linux命令
#分 时 日 月 周 |《==============命令行=======================》
代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
---|---|---|---|---|---|---|
数字范围 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7 | 就是命令啊 |
当周的数字为0或7时,都代表“星期天”的意思。另外,还有一些辅助的字符,大概有下面这些:
特殊字符 | 代表意义 |
---|---|
*(星号) | 代表任何时刻都接受的意思。举例来说,日、月、周都是*,就代表着不论何月、何日的礼拜几的12:00都执行后续命令的意思。 |
,(逗号) | 代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:0 3,6 * * * command时间还是有五列,不过第二列是 3,6 ,代表3与6都适用 |
-(减号) | 代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:20 8-12 * * * command仔细看到第二列变成8-12.代表 8,9,10,11,12 都适用的意思/n(斜线) 那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:/5 * * * * command用与/5来搭配,也可以写成0-59/5,意思相同 |
-
为当前用户创建cron服务
键入 crontab -e 编辑crontab服务文件
例如 文件内容如下:
*/1 * * * * bash /root/s.sh >>/root/log
然后保存文件并并退出。
会提示:crontab: installing new crontab
,表示创建成功。
让输入crontab -l
即可显示创建了的定时任务。
-
启动crontab服务
一般默认都是启动的,要是没有启动,就使用下面的方法。
一般启动服务用
/sbin/service crond start
若是根用户的cron服务可以用sudo service crond start
, 这里还是要注意 下 不同版本linux系统启动的服务的命令也不同 ,像我的虚拟机里只需用sudo service cron restart
即可,若是在根用下直接键入service cron start
就能启动服务。