博客园  :: 首页  :: 管理

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