Linux crontab命令

Linux crontab命令,第1张

Linux crontab命令 被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成 *** 作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

crontab文件:指定包含待执行任务的crontab文件。

Linux下的任务调度分为两类:系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

/etc/crontab文件包括下面几行:

前四行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。

用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致,使用者权限文件如下:

/etc/cron.deny 该文件中所列用户不允许使用crontab命令

/etc/cron.allow 该文件中所列用户允许使用crontab命令

/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名

crontab文件的含义:用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute hour day month week command 顺序:分 时 日 月 周

其中:

在以上各个字段中,还可以使用以下特殊字符:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

查看crontab服务状态:

service crond status

手动启动crontab服务:

service crond start

查看crontab服务是否已设置为开机启动,执行命令:

ntsysv

加入开机自动启动:

chkconfig –level 35 crond on

每1分钟执行一次command

每小时的第3和第15分钟执行

在上午8点到11点的第3和第15分钟执行

每隔两天的上午8点到11点的第3和第15分钟执行

每个星期一的上午8点到11点的第3和第15分钟执行

每晚的21:30重启smb

每月1、10、22日的4 : 45重启smb

每周六、周日的1:10重启smb

每天18 : 00至23 : 00之间每隔30分钟重启smb

每星期六的晚上11:00 pm重启smb

每一小时重启smb

晚上11点到早上7点之间,每隔一小时重启smb

每月的4号与每周一到周三的11点重启smb

一月一号的4点重启smb

每小时执行/etc/cron.hourly目录内的脚本

1.修改crontab文件添加或修改定时任务

直接编辑文件:nano /etc/crontab

或使用crontab命令:crontab -e

2.语法介绍:

里面已经有一些test示例,照着添加或修改就行,这里做点简单介绍:

time user command

分                 时             天           月               星期                    用户              命令

minute         hour         day         month         dayofweek         user              command

A. 时间 time:

minute: 分钟,从 0 到 59 之间的任何整数

hour: 小时,从 0 到 23 之间的任何整数

day: 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)

month: 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)

dayofweek: 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)

command: 要执行的命令(command是linux终端可以直接执行的命令。)

这里一些符号可以表示以上特殊数值:

*表示所有有效值

-表示范围, 比如1-4(从1到4)

,表示散数数值, 比如1,2,4,7...

/表示每隔,比如 */19 (每隔19 )

看一些简单的例子,以下是我自己的一个crontab文件:

root@mtx:~#crontab -l

# /etc/crontab: system-wide crontab

# Unlike any other crontab you don't have to run the `crontab'

# command to install the new version when you edit this file

# and files in /etc/cron.d. These files also have username fields,

# that none of the other crontabs do.

SHELL=/bin/.sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow usercommand

#17 ** * *root    cd / &&run-parts --report /etc/cron.hourly#每小时的17分

#25 6* * *roottest -x /usr/sbin/anacron || ( cd / &&run-parts --report /etc/cron.daily )#每天6点25分

#47 6* * 7roottest -x /usr/sbin/anacron || ( cd / &&run-parts --report /etc/cron.weekly )#每年7月份里每一天的6点47分

#52 61 * *roottest -x /usr/sbin/anacron || ( cd / &&run-parts --report /etc/cron.monthly )#每个月1号的6点52分

*/4 *   * * *   root    /home/Tool/httpslow/httpslow.sh 每4分钟

#

B. 命令 command

命令command直接是linux终端可以执行的命令或可执行脚本的绝对位置

3.使用方法:

crontab crontab_file (-u user)#如crontab /etc/crontab -u root (root用户执行默认配置文件)

crontab -l#查看当前正在运行的crontab服务

crontab -r#删除用户crontab配置文件

crontab -i#删除前给出提示

crontab -h#查看帮助

/etc/init.d/cron start/stop/restart/reload#启动/停止/重启/重新加载 crontab服务

简单的临时重复命令完全可以有其他方案代替:

while truedo clear &&echo '您的ip地址是:' &&wget -qo- ifconfig.me/ipsleep 120done

#每2分钟刷新一次外网ip地址,并打印出来”

watch -n 5 netstat -nus#显示网络流量,每5秒刷新一次

。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7897296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存