Liunx定时任务服务

:2024年06月02日 晓煜大发现
分享到:

Linux定时任务服务(如备份数据库、重启服务等)可以通过crontab命令进行设置。crontab配置文件位于/etc目录下,每个用户可以有自己的crontab文件。Shell为crontab命令提供了执行环境,PATH包含系统中可...

‖ 系统学习--Liunx定时任务服务

Liunx定时任务服务

在我们的日常运维中,我们需要经常备份一些数据。比如隔一断时间备份一下mysql数据库,或者半夜2点重启一下我们的网站nginx服务等等这些需要定时备份或重启的事情。

但我们不可能半夜起来备份数据或重启服务,这个时候我们就需要自动执行任务

命令:

crontab

-l 列出当前用户有哪些计划任务

-e 编辑当前用户的计划任务

-r 删除当前用户的计划任务

crontab命令源自Unix系统,它是cron table(cron表)的简写。cron是一个自动执行任务的服务,而crontab则是这个服务的配置文件,通过这个文件我们可以设置何时以及如何执行特定的命令或脚本。每个用户都可以有自己的crontab文件,而系统管理员则可以控制这些文件的访问权限。

我们先来看一下crontab的配置文件语法内容

crontab配置文件目录在etc目录下有一个叫crontab的配置文件

cat /etc/crontab

[root@localhost etc]# cat /etc/crontab

SHELL=/bin/bash

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

MAILTO=root

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

一、取值范围

1、分:0~59

2、时:0~23

3、日:1~31

4、月:1~12

5、周:0~7,0和7表示是星期到现在为止

注意日期和星期几不能同时写

二、四个符号:

*:表示取值范围的每一个数据

-:做连续区间表达式的,比如想表达1到7可以写成1-7

/:表示每多少个。比如想表达每10分钟一次可以写成*/10

,:表示多少个取值,比如想在1点,2点,6点执行定时,则可以写成1,2,6

牛刀小试

比如我想每分钟往/home/lu/Desktop/test.txt写一句话我们可以这们写

第一步

输入crontab -e 编辑当前用户计划任务

第二步

写入用户计划

* * * * * /usr/bin/echo '这是每分钟写入内容' >> /home/Desktop/test.txt

第三步

我们查看一下有没有定时任务

crontab -l

我们写入定时任务后,会自动记录到一个文件中,文件路径在/var/spool/cron/中

ls /var/spool/cron/

这时里面记录了当前用户的所有定时任务。

我们来练习一下以下题目

问题1:每月1、10、22 日的4:45 重启network 服务

* * * * *

分 时 日 月 周 命令的绝对路径

从左 向右,依次去写,不要跳级

45 2 1,10,22 * * /usr/bin/systemctl restart network

问题2:每周六、周日的下午1:10  重启network 服务

* * * * *

分 时 日 月 周 命令的绝对路径

从左 向右,依次去写,不要跳级

10 13 * * 6,7 /usr/bin/systemctl restart network

问题3:每天18:00 至23:00 之间每隔30 分钟重启network 服务

* * * * *

分 时 日 月 周 命令的绝对路径

从左 向右,依次去写,不要跳级

*/30 18-23 * * * /usr/bin/systemctl restart network

问题4:每隔两天的上午8点到11点的第3和第15分钟执行一次重启

分 时  日   月  周  命令的绝对路径

从左 向右,依次去写,不要跳级

3,15 8-11 */2 * * /usr/sbin/reboot

问题5 :每天凌晨整点重启nginx服务。

分 时  日   月  周  命令的绝对路径

从左 向右,依次去写,不要跳级

0 0 * * * /usr/bin/systemctl restart nginx

问题6:每周4的凌晨2点15分执行命令

分 时  日   月  周  命令的绝对路径

从左 向右,依次去写,不要跳级

15 2 * * 4 /usr/sbin/reboot

问题7:工作日的工作时间内的每小时整点执行脚本。工作日  1-5工时   9-18

分 时  日   月  周  命令的绝对路径

从左 向右,依次去写,不要跳级

0 9-18 * * 1-5 /usr/sbin/reboot

问题8:每天凌晨2点30,执行ntpdate命令同步ntp.aliyun.com,且不输出任何信息,把命令结果,重定向到黑洞文件

/dev/null黑洞文件

备注:定时任务的命令执行,会产生日志

30   2 *  *  *  /usr/sbin/ntpdate -u ntp.aliyun.com  &> /dev/null

禁止哪些用户创建定时任务

/etc/cron.deny 黑名单文件 (将系统中,所有uid大于1000的用户,全部写入黑名单)

/etc/cron.allow 白名单 ,优先级高于黑名单

最后,定时任务,crontab会在系统中,生成大量的邮件日志,会占用磁盘,因此我们都会关闭邮件服务即可

找到文件

[root@localhost etc]# find / -type f -name 'post*service'

find: ‘/run/user/1000/gvfs’: Permission denied

/usr/lib/systemd/system/postfix.service

查看状态

systemctl status postfix

停止服务

systemctl stop postfix

禁止开机自启

systemctl disable postfix

喜欢就分享点赞一下吧

原文来源:https://mp.weixin.qq.com/s/-vim9hns81O4FoMnBL2Scw

[我要纠错]
文:王振袢&发表于江苏
关键词: 系统 学习 --Liunx 定时 任务

来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

点个赞
0
踩一脚
0

您在阅读:Liunx定时任务服务

Copyright©2013-2024 JSedu114 All Rights Reserved. 江苏教育信息综合发布查询平台保留所有权利

苏公网安备32010402000125 苏ICP备14051488号-3技术支持:南京博盛蓝睿网络科技有限公司

南京思必达教育科技有限公司版权所有   百度统计

最热文章
最新文章
  • 卡尔蔡司镜片优惠店,镜片价格低
  • 苹果原装手机壳