0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux计划任务介绍

马哥Linux运维 来源:马哥Linux运维 2024-11-24 15:49 次阅读

1.计划任务(定时任务)基本概述

1.什么是crond

crond就是计划任务,类似于我们平时生活中的闹钟。定点执行。

2.为什么要使用crondcrond主要是做一些周期性的任务,比如: 凌晨3点定时备份数据。比如:11点开启网站抢购接口,12点关闭网站抢购接口。

3.计划任务主要分为以下两种使用情况:

1.系统级别的定时任务: 临时文件清理、系统信息采集、日志文件切割2.用户级别的定时任务: 定时向互联网同步时间、定时备份系统配置文件、定时备份数据库的数据

2.计划任务时间管理

1.Crontab配置文件记录了时间周期的含义

/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
22 * * * *  root touch b.txt 每天的每小时的第22分钟做什么事
25 15 * * * root touch /tmp/c.txt 每天下午的三点25分
27 15,16,17 * * * root touch /tmp/d.txt  每天的15点,16点,17点的第27分钟
28 15-19 * * * root touch /tmp/e.txt 表示 每天的15点到19点的28分钟
30 10-20/5 * * * root touch /tmp/f.txt 每天的10点到20点每个5小时
*/7 * * * * root touch /tmp/f.txt  从0开始重新结算
37 * 10,20,30 * 4 echo $(date) >> /tmp/g.txt 表示每个月的10,20,30或者每周的周四
建议:
分钟不要写成*
分钟不要写成*
分钟不要写成*
写了*代表每一分钟,都要执行命令

2.了解crontab的时间编写规范

00 02    ls      #每天的凌晨2点整执行
00 02 1   ls      #每月的1日的凌晨2点整执行
00 02 14 2  ls     #每年的2月14日凌晨2点执行
00 02   7 ls      #每周天的凌晨2点整执行
00 02  6 5 ls      #每年的6月周五凌晨2点执行
00 02 14  7 ls     #每月14日或每周日的凌晨2点都执行
00 02 14 2 7 ls     #每年的2月14日或每年2月的周天的凌晨2点执行   
/10  02    ls   #每天凌晨2点,每隔10分钟执行一次
      ls       #每分钟都执行
00 00 14 2   ls    #每年2月14日的凌晨执行命令 
/5      ls     #每隔5分钟执行一次
00 02  1,5,8  ls  #每年的1月5月8月凌晨2点执行
00 02 1-8    ls    #每月1号到8号凌晨2点执行
0 21    ls       #每天晚上21:00执行
45 4 1,10,22   ls #每月1、10、22日的4:45执行
45 4 1-10   l     #每月1到10日的4:45执行
3,15 8-11 /2   ls #每隔两天的上午8点到11点的第3和第15分钟执行
0 23-7/1    ls   #晚上11点到早上7点之间,每隔一小时执行
15 21   1-5 ls    #周一到周五每天晚上21:15执行

3.使用crontab编写cron定时任务

crontab 命令

参数 含义
-e 编辑定时任务
-l 查看定时任务
-r 删除定时任务
-u 指定其他用户

-e 编辑
-u 指定用户,如果不写,默认为当前用户
-l 列出当前用户的计划任务
-r 删除用户的计划任务

默认写入的文件在/var/spool/cron/username(root)

3.计划任务编写实践

1.使用root用户每5分钟执行一次时间同


#1.如何同步时间
[root@lqz ~]# ntpdate time.windows.com &>/dev/null
#2.配置定时任务
[root@lqz ~]# crontab -e -u root
[root@lqz ~]# crontab -l -u root
/5     ntpdate time.windows.com &>/dev/null

2.每天的下午3,5点,每隔半小时执行一次sync命令

将备份命令写入一个脚本中

每天备份文件名要求格式: 2019-05-01_hostname_etc.tar.gz

在执行计划任务时,不要输出任务信息

存放备份内容的目录要求只保留三天的数据


#1.实现如上备份需求
[root@lqz ~]# mkdir /backup
[root@lqz ~]# tar zcf $(date +%F)_$(hostname)_etc.tar.gz /etc
[root@lqz ~]# find /backup -name “.tar.gz” -mtime +3 -exec rm -f {};


#2.将命令写入至一个文件中
[root@lqz ~]# vim /root/back.sh
mkdir /backup
tar zcf $(date +%F)_$(hostname)_etc.tar.gz /etc
find /backup -name “.tar.gz” -mtime +3 -exec rm -f {};


#3.配置定时任务
[root@lqz ~]# crontab -l
00 03    bash /root/back.sh  &>/dev/null

4.crnd注意的事项

给定时任务注释

将需要定期执行的任务写入Shell脚本中,避免直接使用命令无法执行的情况tar date

定时任务的结尾一定要有&>/dev/null或者将结果追加重定向>>/tmp/date.log文件

注意有些命令是无法成功执行的 echo “123” >>/tmp/test.log &>/dev/null

5.如果一定要是用命令,命令必须使用绝对路径

5.crond如何备份

1)通过查找/var/log/cron中执行的记录,去推算任务执行的时间

2)定时的备份/var/spool/cron/

6.crond如何拒绝某个用户使用


#1.使用root将需要拒绝的用户加入/etc/cron.deny
[root@lqz ~]# echo "lqz" >> /etc/cron.deny


#2.登陆该普通用户,测试是否能编写定时任务
[oldboy@lqz ~]$ crontab -e
You (lqz) are not allowed to use this program (crontab)
See crontab(1) for more information

4.计划任务如何调试

1.crond调试

调整任务每分钟执行的频率, 以便做后续的调试。

如果使用cron运行脚本,请将脚本执行的结果写入指定日志文件, 观察日志内容是否正常。

命令使用绝对路径, 防止无法找到命令导致定时任务执行产生故障。

通过查看/var/log/cron日志,以便检查我们执行的结果,方便进行调试。

2.crond编写思路

1.手动执行命令,然后保留执行成功的结果。

2.编写脚本

脚本需要统一路径/scripts

脚本内容复制执行成功的命令(减少每个环节出错几率)

脚本内容尽可能的优化, 使用一些变量或使用简单的判断语句

脚本执行的输出信息可以重定向至其他位置保留或写入/dev/null

3.执行脚本

使用bash命令执行, 防止脚本没有增加执行权限(/usr/bin/bash)

执行脚本成功后,复制该执行的命令,以便写入cron

4.编写计划任务

加上必要的注释信息, 人、时间、任务

设定计划任务执行的周期

粘贴执行脚本的命令(不要手敲)

5.调试计划任务

增加任务频率测试

检查环境变量问题

检查crond服务日志

5 计划任务作用

定时删除

定时备份

同步时间 ntpdate

补充内容

1.crontab的日志

tail /var/log/cron 查看计划任务日志

2.命令最好写绝对路径

3.ping

-c 指定次数
ICMP 协议    ---> 自行百度
ping -c 1 www.baidu.com   ping一次

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11225

    浏览量

    208905

原文标题:Linux计划任务

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    37.软件管理和计划任务:6.4 计划任务-at #硬声创作季

    软件
    充八万
    发布于 :2023年07月12日 03:23:00

    分享!linux运维基础视频教程免费

    linux集群_33_一次性计划任务尚观云计算之linux集群_34-1周期性计划任务1尚观云计算之linux集群_34-2周期性
    发表于 06-16 15:23

    linux运维基础视频教程免费分享

    开机启动流程(2)尚观云计算之linux集群_31_日志尚观云计算之linux集群_32-1日志轮询尚观云计算之linux集群_32-2 ssh尚观云计算之linux集群_33_一次
    发表于 07-27 13:46

    Linux应用--日志定时清理

    脚本加入到系统计划任务,到点自动执行: 30 0 * * * /home/apache-tomcat-7.0.55-13-990*/webapps/ProxyServer2.0/WEB-INF/logs
    发表于 07-09 08:12

    linux计划任务方式和定时关机

    设置192.168.67.232/231在21:30自动关机 1)手动命令方式 #shutdown -h 21:30
    发表于 07-16 08:12

    详解linux定时任务

    定时执行程序,实现脚本中的功能,在linux是通过etc/init.d/crond这个服务来实现计划任务
    发表于 07-25 06:12

    Linux与VxWorks任务调度机制分析

    Linux与VxWorks任务调度机制分析
    发表于 03-28 09:52 19次下载

    收集Unix/Linux/BSD命令和任务的文档

    收集Unix/Linux/BSD命令和任务的文档
    发表于 10-30 15:46 8次下载
    收集Unix/<b class='flag-5'>Linux</b>/BSD命令和<b class='flag-5'>任务</b>的文档

    Firefox 75附带一个新的计划任务 可自动收集遥测数据以帮助Mozilla改进这款浏览器

    外媒报道称,几天前发布的 Firefox 75 软件,在 Windows 中附带了一个新的计划任务。在用户选择开启之后,它便可每日收集可用的遥测数据,以帮助 Mozilla 改进这款浏览器。其实早在
    的头像 发表于 04-10 16:12 1561次阅读

    Linux的基础学习笔记资料总结

    、 运行级别,十、 进程管理,十一、 资源监控,十二、 系统服务,十三、 环境管理,十四、 网络管理,十五、 配置文件,十六、 计划任务,十七、 VI/VIM编辑器,十八、 压缩打包,十九、 性能优化,二十、 常见问题
    发表于 11-13 08:00 4次下载

    浅析Wireshark流量添加计划任务行为检测

    at命令是Windows自带的用于创建计划任务的命令,但是at命令只在2003及以下的版本使用。
    的头像 发表于 10-19 09:10 1000次阅读

    Linux服务器信息收集脚本

    主要收集服务器系统版本、IP地址、ARP连接、路由信息、密码信息、历史命令、当前权限、网络连接、进程信息、服务信息、SSH登录信息、环境变量、计划任务等多种信息。
    的头像 发表于 12-05 10:07 775次阅读

    APS智能排产确保新能源企业订单交期最大准时化

    在产线、机台、模治具、人力、物料、工作时间等影响生产计划的因素变更后,系统自动重新修正原有计划,将原有计划任务重新分配给新的合适的承担者,自动按照预定条件分配工作计划任务,并提前预测出
    的头像 发表于 12-06 17:19 540次阅读
    APS智能排产确保新能源企业订单交期最大准时化

    linux定时任务的用法总结

    习惯了使用 windows 的计划任务,使用 linux 中的 crontab 管理定时任务时很不适应。
    的头像 发表于 08-14 18:16 798次阅读
    <b class='flag-5'>linux</b>定时<b class='flag-5'>任务</b>的用法总结

    Linux计划任务crontab运行脚本不正确的问题

    写好的程序希望在崩溃之后能够自启动,于是利用linux的crontab功能,添加一个计划任务,每分钟执行一个脚本查看需要监控的进程是否还在,如果不在则启动之,否则不做任何事情。这么一个简单的脚本在crontab中运行和在shell终端手工运行的结果却不一样。
    的头像 发表于 10-23 13:36 287次阅读