linux系统中计划任务介绍

 更新时间:2021年12月23日 09:10:29   作者:怿琴殇  
大家好,本篇文章主要讲的是linux系统中计划任务介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

一、定制计划任务

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))

格式如图所示:

 例子:《示例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 

到此这篇关于linux系统中计划任务介绍的文章就介绍到这了,更多相关linux计划任务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux服务器磁盘爆满的处理方案

    linux服务器磁盘爆满的处理方案

    文章描述了Linux服务器磁盘爆满导致Redis服务无法访问的问题,通过一系列命令查找并删除大文件,解决了磁盘空间不足的问题,同时,文章介绍了如何配置Nacos以防止日志文件过大导致磁盘空间爆满,需要的朋友可以参考下
    2025-02-02
  • NodeJs在Linux下使用的各种问题解决

    NodeJs在Linux下使用的各种问题解决

    本篇文章主要介绍了NodeJs在Linux下使用的各种问题解决,可以解决各种问题,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Apache POI用法示例详解

    Apache POI用法示例详解

    Apache POI是一个开源的Java API,用于处理Microsoft Office文档,提供了多种组件,例如HSSF、XSSF等,以支持不同格式如Excel、Word、PowerPoint等文件的读写操作,本文介绍Apache POI用法,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • CentOS7修改服务器系统时间的方法

    CentOS7修改服务器系统时间的方法

    服务器上的系统时间不对,比实际的UTC快了将近63分钟。在这里小编给大家分享下系统时间更正的过程,对centos修改服务器时间的知识感兴趣的朋友参考下吧
    2016-10-10
  • Linux安装yum时出现apt-get install E: 无法定位软件包问题解决

    Linux安装yum时出现apt-get install E: 无法定位软件包问题解决

    这篇文章主要介绍了Linux安装yum时出现apt-get install E: 无法定位软件包问题解决的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-12-12
  • Linux 内核空间与用户空间实现与分析

    Linux 内核空间与用户空间实现与分析

    这篇文章主要介绍了Linux 内核空间与用户空间实现与分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • CentOS利用screen实现多任务管理功能

    CentOS利用screen实现多任务管理功能

    screen是一个功能强大的终端复用工具,它可以创建多个虚拟终端窗口,并且可以在这些窗口之间自由切换,本文将从安装screen开始,详细介绍其常用命令及使用示例,帮助读者更好地理解和掌握这个实用工具
    2023-06-06
  • linux挂载新硬盘过程分享

    linux挂载新硬盘过程分享

    最近有个生产机由于缓存问题,硬盘不太够用,所以就加载了一块硬盘,下面把挂载硬盘的过程记录下,供大家参考
    2014-01-01
  • CentOS7升级内核kernel5.0版本

    CentOS7升级内核kernel5.0版本

    这篇文章主要介绍了CentOS7升级内核kernel5.0版本,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • git拉源码maven构建后部署脚本详解

    git拉源码maven构建后部署脚本详解

    这篇文章主要介绍了git拉源码maven构建后部署脚本详解的相关资料,需要的朋友可以参考下
    2017-01-01

最新评论