久了不用,经常忘记,记录一下crontab的简单用法,以利于未来用到或忘记时快速查阅。

以下命令是在Ubuntu Linux上的终端执行的,可能有些命令不适用于其他版本的Linux。

如何知道Linux系统是否安装了cron服务?

有三个方法可以知道Linux系统是否安装了cron服务,方法一是使用apt命令,方法二是使用dpkg命令,方法三是使用systemctl命令。

linuxcrontab教程交流(Linux简单使用crontab命令定时任务)(1)

查看Linux是否安装cron服务

方法1: 使用apt命令

apt list cron --installed

方法2: 使用dpkg命令

# 命令1 dpkg -l cron # 命令2 dpkg -l | grep cron # 命令3 dpkg -l | cut -d " " -f3 | grep cron # 命令4 可以查看cron服务被安装在哪些路径下 dpkg -L cron

方法3: 使用systemctl命令

# 查看cron服务的状态 systemctl status cron

cron服务的安装、开机自启、启动、停止、重启、查看状态

# 安装cron服务 sudo apt update sudo apt install cron # 激活cron服务 开机自启(开机时自动启动) sudo systemctl enable cron # 禁用cron服务 开机自启 sudo systemctl disable cron # 查看cron服务 是否激活了开机自启 sudo systemctl is-enabled cron # 启动cron服务 sudo systemctl start cron # 停止cron服务 sudo systemctl stop cron # 直接kill掉cron服务,慎用这个命令,一般用systemctl stop停止服务 sudo systemctl kill cron # 重启cron服务 sudo systemctl restart cron # 查看cron服务的状态 sudo systemctl status cron

使用crontab命令设置定时任务的步骤

步骤1: 安装和启动cron服务。如何安装cron服务?如何启动cron服务?前文已列出解决方法。

步骤2: 编写一个定时任务需要执行的脚本。这里我用python写了一个名叫create_machine_prize.py的脚本。

linuxcrontab教程交流(Linux简单使用crontab命令定时任务)(2)

用python写了create_machine_prize.py

步骤3: 确定脚本执行的时间点。我这里希望脚本每10分钟执行一次,所以,该脚本的crontab任务配置如下:

*/10 * * * * /usr/bin/env bash -c 'cd /data/web/m.xyz.com && /data/web/m.xyz.com/env/bin/python -m cron_jobs.create_machine_prize' > /dev/null 2>&1

步骤4: 执行crontab -e命令,进入crontab任务编辑界面,复制步骤3的crontab任务配置,然后粘贴进去,保存后退出,执行crontab -l命令查看刚才添加的任务是否存在。

执行crontab -e命令后进入的编辑环境,就是vi编辑器的环境,只要会用vi编辑器,编辑crontab任务的配置没有任何难度。

命令执行过程如下所示:

helper@hgdm:~$ crontab -e crontab: installing new crontab helper@hgdm:~$ crontab -l */10 * * * * /usr/bin/env bash -c 'cd /data/web/m.xyz.com && /data/web/m.xyz.com/env/bin/python -m cron_jobs.create_machine_prize' > /dev/null 2>&1

linuxcrontab教程交流(Linux简单使用crontab命令定时任务)(3)

执行crontab -e和crontab -l

步骤5: 确定一下任务是否正确执行了。这里,我把任务的处理结果写入了数据库,我去数据库查看一下是否有数据就知道了。

其实,测试时最好把任务的输出结果写入到一个日志里,以利于出错时高效排错。若需写入日志,可以使用以下crontab配置:

*/10 * * * * /usr/bin/env bash -c 'cd /data/web/m.xyz.com && /data/web/m.xyz.com/env/bin/python -m cron_jobs.create_machine_prize' >>/home/helper/logs/create_machine_prize.log 2>>&1

最后

本文只是写了crontab的简单使用。如何配置任务的执行时间点,需要去查相关资料了。

,