电子产业一站式赋能平台

PCB联盟网

搜索
查看: 85|回复: 0
收起左侧

Liunx定时任务服务

[复制链接]

473

主题

473

帖子

5190

积分

四级会员

Rank: 4

积分
5190
发表于 2024-6-6 11:00:00 | 显示全部楼层 |阅读模式
‖ 系统学习--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

qbq1fvwhhsi64021939654.png

qbq1fvwhhsi64021939654.png

一、取值范围
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

vvc3e32eunh64021939754.png

vvc3e32eunh64021939754.png


i4qwjggrbag64021939854.png

i4qwjggrbag64021939854.png

我们写入定时任务后,会自动记录到一个文件中,文件路径在/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喜欢就分享点赞一下吧

gqn2zaameog64021939954.png

gqn2zaameog64021939954.png

更多内容在晓煜大发现公共号点击菜单课程学习
更多精彩内容微信公共号关注:晓煜大发现


opdwifupe4f64021940054.png

opdwifupe4f64021940054.png

END最后:小伙伴还记得么,右下角 “在看” 点一下,防止获取不到,你们的支持就是我前进的动力!
喜欢就分享点赞一下吧!您的点赞是我前进的动力!


回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表