Linux 例行性任务(也叫周期性任务)的服务名为crond,常用的操作命令为crontab
1.crontab -l 查看当前用户的任务
2.crontab -e 编辑(设置)当前用户的任务,执行行不用重启crond服务。
3.crontab -r 清除当前用户的任务,如果有多个任务的话,-r 参数会清除所有任务,如需清除某个具体的任务,需要执行crontab -e进行编辑
crontab例行性任务依赖于【crond服务】,crontab -e 编辑的文件,其实位于/var/spool/cron/xxx xxx代表用户名
参数说明:
* * * * *
分 时 日 月 周
【*】: 代表任何时刻都接受的意思!如果5个都为*的话,则代表每隔1分钟执行一次
【,】 : 代表分隔时段的意思。举例来说,如果要下达的工作是 9:00 与 12:00 时,就会是:0 9,12 * * * command
【-】: 代表一段时间范围内,举例来说, 9点到12点之间的每小时的10分都进行一项工作。就是会:10 8-12 * * * command
8-12代表 8,9,10,11,12 都适用的意思!
【/n】: 那个 n 代表数字,亦即是『每隔 n 单位间隔』的意思,例如每五分钟进行一次,则: */5 * * * * command
用 * 与 /5 来搭配,也可以写成 0-59/5 ,相同意思!
编辑自己的crontab,可以使用crontab -e 进入编辑界面,一行代表一个周期例行任务,最前面加#可以注释!
实例配置一,每天的00:01分和1~23点,每两个小时的第一分钟,执行一个任务,写法如下:
1 0,1-23/2 * * * /script/qq_5201351.sh
实例二、要求每天凌晨3点在postgresql中执行一条sql、可以使用如下脚本
#!/bin/bash # export PGPASSWORD="postgres" psql -U postgres -d qq_1351 << eof delete from qq_5201351 where qq_state = 1; \q eof
给脚本加上执行权限、然后使用crontab -e编辑任务。
0 3 * * * /home/postgresql/db.sql >> /opt/log.log 2>&1
如果上面的>>后面直接跟的是文件名如log.log、则文件的位置就是脚本所在的/home/postgresql目录。
具体到某月某天的任务(如下4月2号),笔者曾经用过的更改实例机型的案例如下(不用周期性的,可以类似于at的功能了)
55 20 2 4 * /home/qq-5201351/.Python-3.8.6/bin/python3 /home/qq-5201351/1.py 30 08 2 4 * /home/qq-5201351/.Python-3.8.6/bin/python3 /home/qq-5201351/3.py
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/4089588.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!