Linux服务器使用Crontab控制定时任务

有运维或运维开发方面的需求,可以联系博主QQ 452336092或Email:admin#centos.bz(收费)

Crontab,可以将任何脚本、程序或文档安排在某个最方便的时间运行。通俗的讲就是定时执行某个脚本、程序。

常见用途:

定时关机
定时检查更新
定时对系统配置、数据库、日志进行备份
定时清理垃圾文件

检测是否已安装

crontab
-bash: crontab: command not found

执行 crontab 命令如果报 command not found,就表明没有安装.

开始安装

#yum -y install vixie-cron crontabs -y

crontab 并不支持-h或–help之类的选项,不过还是可以通过它查看命令帮助

# crontab -h

也可以使用 info crontab 命令查看详细的帮助信息。

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:

crontab -u root -l

再例如,root想删除fred的cron设置:

crontab -u fred -r

在编辑cron服务时,编辑的内容有一些格式和约定,输入:

crontab -u root -e

进入vi编辑模式,编辑的内容一定要符合下面的格式:/1 * * * ls >> /tmp/ls.txt


Crontab配置方法:

重点来了:

每个用户可以直接修改文件 /var/spool/cron/user来控制/etc/crontab文件,root的话就是

/var/spool/cron/root

直接编辑此文件即可自动化运行,示例:

echo  "0 1 * * * /sbin/reboot > /dev/null 2>&1"  >> /var/spool/cron/root

这个脚本每天1点自动重启服务器
添加之后使用

crontab -l

可以看到已经添加了Crontab任务。

方法二:

echo "0 1 * * * /sbin/reboot > /dev/null 2>&1" >1.sh
crontab 1.sh

意思也就是先把定时任务存为文件,在使用Crontab来调用,也可以添加成功。
添加之后使用

crontab -l

也可以看到已经添加了Crontab任务。
这样就能使得Crontab添加脚本自动化运行相关程序。
Crontab比init.d运行级别大一些,用Crontab来控制程序运行更加完美。


Crontab状态控制

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //查看状态

或者使用

# service crond start
# service crond stop
# service crond restart
# service crond reload
# service crond status

想记录下来的也就是—之间部分。。。
附上一个Crontab定时重启服务器脚本:

#!/bin/bash
#  .-------------------------------------------------------------
#  | Bash Name: 服务器定时重启脚本
#  | Version: 1.0
#  | This Is a Shell Script ,Easy To Use
#  | Web Site: https://4ker.cc/crontab.html
#  |--------------------------------------------------------------
#  | Author: 刺猬 <a@4ker.ccc>
#  | Copyright (c) 2017, https://4ker.cc All Rights Reserved.
#  .--------------------------------------------------------------
echo "欢迎使用服务器定时重启脚本"
echo '请输入重启服务器的时间:(示例:数字1-9,表示1-9点):'
read time
yum install vixie-cron crontabs -y
chkconfig crond on
systemctl enable crond.service
service crond start
/bin/systemctl start crond.service
echo  "0 $time * * * /sbin/reboot > /dev/null 2>&1"  >> /var/spool/cron/root
echo "添加成功,服务器在每天$time自动重启!"
sleep 1
echo "服务器将重启使脚本生效!"
reboot
echo ;

原文出处:4ker -> https://4ker.cc/crontab.html

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^