linux 计划任务的使用

安装crontab

目录

安装crontab

基本参数

实际案例


在使用crontab之前我们首先需要确认我们是否已经安装了crontab(一般都会默认安装)

1、产看是否安装,使用这个命令可以在屏幕上输出crontab的版本信息

crontab -V

如果成功输出crontab的版本信息则表示已经安装成功

2、安装crontab,如果没有成功回显或者报错,则表示crontab未安装,我的系统是centos8,所以将使用yum命令进行安装,如果是ubuntu系统则推荐使用apt-get进行安装

yum -y install vixie-cron   #vixie-cron 软件包是 cron 的主程序;
yum -y install crontabs     #软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

3、配置

crond是 Linux的内置服务,它不会自己运行起来,使用以下命令可以对crond进行启动或关闭

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
service crond status    //查看crontab服务状态

 4、开机自启动

不多说废话,直接给命令

chkconfig --level 345 crond on

基本参数

crontab -e  #编辑当前用户的定时器任务
crontab -l  #列出当前用户的定时器任务
crontab -x  #删除当前用户的定时器任务
crontab  file  #file文件的内容是定时器任务

 定时器任务的书写格式

# *  *  *  *  *   command
# 分 时 日 月 周   需要执行的命令
#################第一部分,表示在什么时间执行命令#############

#第一列代表分钟 1~59,每分钟用*或*/1表示,每五分钟用*/5表示
#第二列代表小时 0~23,每小时用*或*/1表示,没五小时用*/5表示
#第三列代表日期 1~31,每天用*或*/1表示
#第四列代表月份 1~12,每月有*或*/1表示,
#第五列代表周几 0~6,0代表周日

#如果需要在多个特定的时间节点执行,不同的时间节点用逗号隔开,例如:
#在每个小时的第2,10,20,40,55分钟执行一次,写法如下
#2,10,20,40,55 * * * * command

#################第二部分,表示需要执行什么命令###############
#第六列代表需要执行的命令,涉及路径的命令建议使用绝对路径,避免运行是可能会找不到相应的文件,导致失败

案例

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

实际案例

要求:制定计划任务,每隔1分钟,查看当前建立的连接,并将相关信息记录到某个日志文件中,第2、10、20、40、55分钟时(模拟场景,实际生产环境中可按需求设定周期),将当前文档移动到指定备份文件夹中,备份文件名中增加日期、时间信息。

分析要求:有两个需要执行的定时任务,我们通过shell脚本+crontab的方法解决问题

脚本1:脚本名称:netlog.shel

            脚本作用:查看当前建立的连接,并将相关信息记录到某ETS.log文件中

            脚本内容:

#!/bin/sh
Date=$(date +%Y-%m-%d-%T)
/usr/bin/echo ==========$Date==========>>/home/lichao/EST.txt
netstat -nat |grep "ESTA">>/home/lichao/EST.txt
netstat -nat |grep "TIME">>/home/lichao/EST.txt

#以上命令的路径是我linux上的路径,你们使用时需要将路径改成自己路径
#有些同学可能会因为未安装netstat导致运行脚本失败,建议使用脚本到crontab时,先在运行一遍,确定脚 #本有效
#如果提示没有netstat命令,可以使用yum安装一下,命令如下
#yum install net-tools

脚本2:脚本名称:backnetlog.sh

             脚本作用: 将当前文档移动到指定备份文件夹中,备份文件名中增加日期、时间信息。

             脚本内容:

#!/bin/bash
Date=$(date +%Y-%m-%d-%T)
filename="netLog_$Date.txt"
mv /home/lichao/EST.txt /home/PlanCopy/$filename


#注意:具体路径换成自己的,使用绝对路径!!!!,在使用crontab之前先运行一遍,测试脚本是否可用
#注意:具体路径换成自己的,使用绝对路径!!!!,在使用crontab之前先运行一遍,测试脚本是否可用
#注意:具体路径换成自己的,使用绝对路径!!!!,在使用crontab之前先运行一遍,测试脚本是否可用
#重要的事情说三遍

接下来给脚本执行权限

chmod u+x netlog.sh backnetlog.sh


#权限不够就在前面加sudo

 接下来开始写crontab任务

内容:

*/1 * * * * sh /home/lichao/netlog.sh
2,10,20,40,55 * * * * bash /home/lichao/backNetlog.sh


#脚本路径换成自己的!!!

 有两种方式执行这个任务:

第一种:crontab -e  ,然后在出来的编辑器内,写入以上两条命令,然后重启任务进程

systemctl restart crond

第二种:将内容写入一个文件内,例如文件名为 file1.txt,然后crontab file1.txt

 

至此结束!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值