linux系统中计划任务介绍

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录一、定制计划任务二、同步时间三、练习四、安全问题

一、定制计划任务

1、atd服务(一次性)

1、atd服务对应的命令——》at

使用at命令时先要进行安装

[root@localhost lianxi]# yum install at -y

然后必须要起动atd服务,不然不会定时去执行任务的

[root@localhost lianxi]# service atd start Redirecting to /bin/systemctl start atd.service

案例如下:

[root@localhost lianxi]# at 11:00 #创建一个一次性执行的计划任务 at> bash /root/wang.sh at> <EOT> # ctrl+d退出 job 5 at Wed Dec 22 11:00:00 2021 [root@localhost lianxi]# at -l 3 Wed Dec 22 10:20:00 2021 a root 5 Wed Dec 22 11:00:00 2021 a root [root@localhost lianxi]# [root@localhost lianxi]# atrm 3 #删除计划任务编号为3的任务 [root@localhost lianxi]# at -l #查看计划任务列表 5 Wed Dec 22 11:00:00 2021 a root [root@localhost lianxi]#

2、存放一次性计划任务的目录:/var/spool/at

batch命令也等同于at命令,只不过是系统负载比较低的时候运行计划任务

uptime命令:

[root@localhost lianxi]# uptime #查看系统开机多久了,以及系统的平均负载 10:28:33 up 4 days, 16:13, 2 users, load average: 0.00, 0.01, 0.05

2、crond服务(周期性)服务是默认安装的,而且开机自动启动

1、crond服务对应的命令——》crontab     是创管理周期性计划任务的命令

-e  表示创建一个计划任务  (edit)

-l  查看计划任务列表

2、存放周期性计划任务的目录:/var/spool/cron

      cron服务的配置文件:/etc/crontab

      cron服务的日志文件:/var/log/cron (可以知道一个计划任务是否执行(CMD))

格式如图所示:

linux系统中计划任务介绍插图

linux系统中计划任务介绍插图1

例子:《示例1 (root用 户)》

每天早上7:50自动开启sshd服务,22点50时关闭

每隔5天的12点整清空一次FTP服务器公共目录Ivar/ftp/pub

每周六的7:30时,重新启动httpd服务

每周一、三、五的17:30时,打包备份/etc/httpd目录[root@localhost lianxi]# crontab -e crontab: installing new crontab [root@localhost lianxi]# crontab -l 30 3 * * * bash /root/sc.sh 50 7 * * * service sshd start 50 22 * * * service sshd stop 0 12 */5 * * rm -rf /var/ftp/pub/* 30 7 * * 6 service httpd restart 30 17 * * 1,3,5 tar czf /backup/httpd.tar.gz /etc/httpd 30 4 * * * /bin/bash /lianxi/backup/backup_log.sh [root@localhost lianxi]#

3、atd服务、crond服务 后面d的含义

d——》daemon(守护进程):一直在内存里运行的进程,直到我们人为停止它的运行,不然它是一直在内存中运行的,因为一直在内存里运行,所以我们的用户可以随时去访问,所以它一直守护着你,等待着你的到来。

二、同步时间

在centos7里:使用ntpdate命令

#第一步先安装 [root@localhost lianxi]# yum install ntpdate -y #第二步 [root@localhost lianxi]# date -s “2021-12-22 15:6:12” #修改时间 2021年 12月 22日 星期三 15:06:12 CST #第三步 [root@localhost lianxi]# ntpdate time.windows.com 22 Dec 11:59:38 ntpdate[13102]: step time server 20.189.79.72 offset -11225.674351 sec [root@localhost lianxi]# date 2021年 12月 22日 星期三 11:59:42 CST

在centos8或7里:使用chrony

[root@localhost lianxi]# yum install chrony -y #安装 [root@localhost lianxi]# service chronyd restart #重启服务 Redirecting to /bin/systemctl restart chronyd.service [root@localhost lianxi]# date -s “2021-12-22 15:6:12” 2021年 12月 22日 星期三 15:06:12 CST [root@localhost lianxi]# date 2021年 12月 22日 星期三 12:02:38 CST

三、练习

1.编写一个脚本/backup/backup_log.sh实现备份/var/log目录下的所有文件到/backup目录下,要求文件名是包含当天日期,精确到秒,文件名例如:2016-6-6-2_30_20-log.tar.gz。

同时要求删除/backup目录下七天前的备份文件,只保留最近7天的

2.以root用户的身份去执行,计划任务的要求是每天的4:30执行上面的这个脚本/backup/backup_log.sh

[root@lamp-test backup]# pwd /backup [root@lamp-test backup]# cat backup_log.sh #!/bin/bash mkdir -p /backup tar -czf /backup/$(date +%F_%H_%M_%S)-log.tar.gz /var/log/* find /backup -mtime +7 -type f -name “*.tar.gz” -exec rm -rf {} ; [root@lamp-test backup]# crontab -l 30 4 * * * bash /backup/backup_log.sh

四、安全问题

1、如何找出有非法的计划任务? 到哪些地方去看? crond进程会到哪些地方去找需要执行的脚本?

1./var/spool/cron   –》用户自定义的计划任务存放的地方

2.操作系统本身的计划任务–(顺风车)

[root@localhost lianxi2]# ls /etc/cron.* /etc/cron.deny /etc/cron.d: 0hourly /etc/cron.daily: 每台需要执行的脚本 logrotate man-db.cron /etc/cron.hourly: 每小时需要执行的脚本 0anacron /etc/cron.monthly: 每个月需要执行的脚本 /etc/cron.weekly: 每周执行的脚本 [root@localhost lianxi2]# cat /etc/cron.deny 禁用crond服务的用户可以写到里面

2、搭顺风车案例

搭顺风车例子: [root@lamp-test cron.hourly]# pwd /etc/cron.hourly [root@lamp-test cron.hourly]# ls 0anacron poweroff.sh [root@lamp-test cron.hourly]# chmod +x poweroff.sh [root@lamp-test cron.hourly]# cat poweroff.sh init 0 [root@lamp-test log]# cd /etc/cron.hourly/ [root@lamp-test cron.hourly]# ls 0anacron poweroff.sh [root@lamp-test cron.hourly]# rm -rf poweroff.sh
免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容