* 简介
linux 默认安装的定时任务(cronjob)程序为 cron,cron 是以系统服务的形式运行的定时任务程序,crontab 是记录所有定时任务和时间频次的文件,一般位于 /etc/crontab,所有用户都有自己对应的 crontab 文件,cron 程序会检测系统所有用户的 crontab 文件并执行。
* 安装工具包(不影响已安装的cron程序)
yum install crontabs -y &&
systemctl enable crond &&
systemctl start crond
vi /etc/crontab
0 */2 * * * root /root/start.sh #每2小时的0点执行一次脚本
59 19 * * * root /sbin/shutdown #每天下午20点关机
crontab /etc/crontab &&
crontab -l
* 其他
#每隔4个小时执行一次
0 */4 * * *
#每隔10天执行一次
0 0 */10 * *
#每天1点执行
0 1 * * *
# 每15分钟执行一次
*/15 * * * * root /home/rtmp/monitor-rtmp.sh
# 每周五17点30分执行
30 17 * * 5 root /home/rtmp/monitor-rtmp.sh
# 每周日17点30分执行(0表示周日)
30 17 * * 0 root /home/rtmp/monitor-rtmp.sh
* ubuntu docker 容器内使用定时任务
apt install cron &&
service cron start &&
vim /etc/crontab
0 17 * * * root /usr/local/src/send_start.sh
crontab /etc/crontab &&
crontab -l
# 注意修改启动文件,使 cron 服务随容器自启
# 查看某个定时任务脚本是否正在运行 ps aux | grep "start.sh"
# 彻底结束正在运行的定时任务脚本(因 sleep 仍在运行)
查看 ID:ps aux | grep "start.sh"
杀死对应进程: kill -9 ***
再次查看是否杀死:ps aux | grep "start.sh"
若变成僵尸进程,则查看其主进程 ID 并杀死主进程:ps -ef | grep defunct | more
# 查看linux系统内所有用户的 crontab 任务
cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}