首页 > 其他分享 >定时任务

定时任务

时间:2022-12-20 19:57:55浏览次数:43  
标签:12 backup cron etc 任务 定时 root

用于执行在Linux中的重复性工作。如:命令(同步系统时间),脚本(备份,系统巡检)

服务使用流程:
部署,
配置,如何使用这个服务通过配置文件,通过命令,初级使用:能用就行;提高:额外的配置;
优化或注意事项:安全......
排障:难点;1,通过错误提示解决,2,学会去看日志;3,高级:让服务输出错误提示或输出更加详细的错误提示(通过重定向);
其他:1,做好监控,2,做好备份,3,做好日志收集;4,统一认证;

部署定时任务:
定时任务软件包名字:cronie,服务名字(进程)crond:
[root@web01 ~]# rpm -qa cronie
cronie-1.4.11-23.el7.x86_64

目录结构:
rpm -ql cronie
/etc/cron.d
/etc/cron.d/0hourly
/etc/cron.deny
/etc/pam.d/crond //这几个不用管
用户的配置文件的目录:
/var/spool/cron
比如:
/var/spool/cron/mclind
用crontab这个命令来编辑这个目录文件
日志文件:/var/log/cron
可以了解下面的配置文件:
[root@web01 ~]# ls -ld /etc/cron.*
drwxr-xr-x. 2 root root 36 12月 7 19:34 /etc/cron.d
drwxr-xr-x. 2 root root 42 12月 6 07:41 /etc/cron.daily //这个目录下,每天运行
-rw-------. 1 root root 0 8月 9 2019 /etc/cron.deny
drwxr-xr-x. 2 root root 22 12月 6 07:41 /etc/cron.hourly
drwxr-xr-x. 2 root root 6 6月 10 2014 /etc/cron.monthly
drwxr-xr-x. 2 root root 6 6月 10 2014 /etc/cron.weekly


完全使用指南
检查是否运行、开机自启动
# systemctl status crond
============
crontab用于定时任务的规则进行增删改查。
选项:
-e:编辑当前用户的定时任务,相当于在vi /var/spool/cron/root(root为当前用户名);
-l:查看当前用户的定时任务,相当于在cat /var/spool/cron/root(root为当前用户名);
-u:指定用户名;
-r:清空当前用户的定时任务;无提示;
-i:清空定时任务之前作提示;
输入crontab -e,即可进入编辑模式,和vim类似;
格式:
* * * * * 命令
分 时 日 月 周 comand to be executed
分:0-59
时:0-23
日:1-31
月:1-12
周:0-6,0或7都代表周日,1-6代表周一到周六;

案例:
每天早上8:30分,去学校
#1,test01 //这是注释
30 8 * * * go to school
晚上12点上床睡觉
* 00 * * * go to bed
00 00 * * * go to bed
//这两种有什么区别?
//第一种,每天的半夜12点,每分钟都go to bed;
//第二种,每天半夜12点,00分,go to bed一次;
//综上,涉及到小时,天,周几的时候,分钟位置上记得写个数(比如00),多少都行;

定时任务部分的特殊符号:
/:斜线,每隔XX时间,比如:*/2 * * * *,每2分种;
-:减号,表示范围,比如:00 8-18/2 * * *,8点到晚上18点期间每2个小时;
,:逗号,独立的一些时间,比如:00 8,9,12,14,18 * * *,8,9,12,14,18点,只有这几个;适用于没规律的时候;

接着找案例:
每天早7点到晚11点,每2个小时运行cmd命令
00 07-23/2 * * * CMD
1)每2分钟同步系统时间,命令要使用绝对路径,输出清空:
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com &>/dev/null
写好之后要调试(测试,检查 )(这里可以先修改一下时间,看能否同步)(date -s '20221111 11:11:11'
1,日志:看是否运行(定时任务日志,只能提示是否运行了,但无法告知是否成功,tail -f /var/log/cron);
2,结果:查看定时任务的结果(时间是否修改,压缩包是否生成);

为什么要用crontab -e编辑定时任务,而不是直接编辑文件呢?因为crontab -e,在保存时候,还有语不检查的功能;

定时任务书写流程:
1,分析要求需要使用什么命令并调试;
2,书写脚本(命令较多,功能复杂)与调试;
3,书写定时任务的配置文件(绝对路径,定向到空)
4,调试;

案例:02,每天定时备份/etc/到/backup/下面
备份时间:业务低谷期,比如凌晨1点备份;
命令:tar命令;
脚本:命令大礼包 .sh .bash结尾;
定时任务配置:
命令:
mkdir -p /backup/ //这只用创建一次
tar zcf /backup/etc-`date +%F`.tar.gz /etc/
脚本:
专用脚本目录:(自己规划,备份放哪,脚本放哪,软件包放哪)
mkdir -p /server/scripts
cd /server/scripts
vim backup-etc.sh //名字,建议见名知义
以下是脚本内容:
tar zcf /backup/etc-`date +%F`.tar.gz /etc/
脚本内容完毕,对,只有这一行,就是上面执行的一行;
sh /server/scripts/backup-etc.sh //执行脚本
书定定时任务:
#2,这是一个定时备份/etc/目录任务,by root at Xxxx
00 01 * * * /bin/sh /server/scripts/backup-etc.s >/dev/null 2>&1
//一开始测试,可以设置频率高一点,比如每分钟,没问题了,可以设置正常要求时间;
tail -f /var/log/cron //查看日志检查
watch ls -l //watch,每2秒运行一下命令

脚本与变量:
变量,可以改变的量,在脚本中可以重复使用;
a = 'asdf'
echo $a //变量取值
dir=/server/scripts/
file=backup-etc.sh
echo $dir$file

脚本开头:建议加上#!/bin/bash,这是一个说明;
对以上脚本改写:

#脚本开始
#!/bin/bash

#定义变量
time=`date +%F_%w`

tar zcf /backup/etc/-$time.tar.gz /etc/
#至此脚本改完;;

标签:12,backup,cron,etc,任务,定时,root
From: https://www.cnblogs.com/mclind/p/16994960.html

相关文章

  • 用好这个任务管理工具,轻松躲避职场明枪暗箭
    俗话说:“职场如战场”,而战场上,就不可避免地存在着形形色色的人,以及竞争与对立关系。升职、加薪、都是足以让人心动的诱惑,有利益存在的地方,就有勾心斗角,明坑暗亏。正所谓,明......
  • Python 任务自动化工具 tox 教程
    在我刚翻译完的Python打包​​系列文章​​中,作者提到了一个神奇的测试工具tox,而且他本人就是tox的维护者之一。趁着话题的相关性,本文将对它做简单的介绍,说不定大家在......
  • 更好用的 Python 任务自动化工具:nox 官方教程
    英文|​​noxtutorial​​​译者|豌豆花下猫@Python猫Github地址:​​https://github.com/chinesehuazhou/nox_doc_cn​​声明:本翻译基于​​CCBY-NC-SA4.0​​授权协议......
  • Python 任务自动化工具:nox 的配置与 API
    英文|​​Configuration&API​​​译者|豌豆花下猫@Python猫Github地址:​​https://github.com/chinesehuazhou/nox_doc_cn​​声明:本翻译基于CCBY-NC-SA4.0授权协......
  • 任务
    1、异步任务开启@SpringBootApplication@EnableAsyncpublicclassDemo14Application{publicstaticvoidmain(String[]args){SpringApplication.r......
  • 让Linux任务在后台可靠运行的几种方法
     我们经常会碰到这样的问题,用telnet/ssh登录了远程的Linux服务器,运行了一些耗时较长的任务,结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终......
  • 事件队列(宏任务、微任务)
    概念因为js是单线程执行,为了防止某个进程堵塞将后面的代码堵死,所以设置了一套规则。首先,js会将同步的代码放到一起,然后压入执行栈,然后将异步代码放入异步队列。异步队列又......
  • 实现 .Net 7 下的数据库定时检查
    在软件开发过程中,有时候我们需要定时地检查数据库中的数据,并在发现新增数据时触发一个动作。为了实现这个需求,我们在.Net7下进行一次简单的演示。PeriodicTimer.Net6......
  • 定时关机命令
    at22:00Shutdown-s  22:00定时关机Windows定时关机命令shutdown例子:计划任务:设置定时关机:开始,运行,at7:20/every:M,T,W,Th,F,S,Sushu......
  • 钉钉待办任务的创建
    publicstaticvoidmain(String[]args){ //----------------------获取accesstoken------ Stringappkey="dingythexhoab0d1nkq3"; Stringappsecret="AEySJvyiaKQ3......