linux 每周日执行脚本,Linux任务计划和周期性任务执行
linux计划任务有两类
at:未来某个时间点仅执行一次任务就结束的指令,at指令执行时必须要有atd这个服务支持。
crontab:可以以时间单位为分钟,小时,每天,每周,每月,每年等循环执行某任务。
单一任务at介绍:
语法格式:at -[lfdcq] TIME
常用选项:
-l 查看作业队列,相当于atq
-f 从某个指定文件文件中读取作业任务,不通过交互式输入。
-d 删除指定的作业任务,相当于atrm。
-c 查看指定作业具体内容。
-q QUEUE指明队列。
TIME时间格式有:
HH:MM 小时:分钟 例如04:00
HH:MM YYYY-MM-DD 小时:分钟 年-月-日 例如15:00 2017-11-25
HH:MM[am|pm] [Month] [Date] 例如:04pm July 30
HH:MM[am|pm] + number [minutes|hours|days|weeks]在某个时间点再加几个时间后执行
例如:now + 5minutes 5分钟后执行
04pm + days三天后下午4点执行
[root@dxlcentOS ~]# at 15:55 2017-11-25 在15点55分执行:切换到tmp目录,执行ls命令
at> cd /tmp
at> ls
at>
job 3 at Sat Nov 25 15:55:00 2017
注意:输入结束后按ctrl+d,任务输入结束at> ,执行结果屏幕不会显示,会以邮件形式发送到邮箱。要是没有mail命令,进行yum -y install mailx安装。
batch命令:系统空闲时才进行的背景任务,他是通过at下达的。
周期性任务计划cron
执行周期性任务要确保crond守护进程在运行。
执行pstree,要是crond运行起来可以看到。
或者执行:~]# systemctl status crond (centos7)
Active: active (running) ... ...
centos6:~]# service crond status
... is running
有时候为了安全起见,可以将不允许某些用户执行周期性任务的用户名添加到/etc/cron.deny文件里面即可。
cron任务分类:分系统cron任务和用户cron任务
系统cron任务:主要用于维护系统自身。
可以手动编辑/etc/crontab文件实现。
系统cron任务格式
1 SHELL=/bin/bash 使用哪种shell接口
2 PATH=/sbin:/bin:/usr/sbin:/usr/bin 执行文件搜索路径
3 MAILTO=root 以email将数据发给谁
4
5 # For details see man 4 crontabs
6
7 # Example of job definition:
8 # .---------------- minute (0 - 59)
9 # | .------------- hour (0 - 23)
10 # | | .---------- day of month (1 - 31)
11 # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
12 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
13 # | | | | |
14 # * * * * * user-name command to be executed
(1) 每一行定义一个周期性任务,共7个字段。
* * * * * : 定义周期性时间。
user-name : 运行任务的用户身份。
command to be executed:要执行的任务。
(2) 此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者自定义PATH环境变量;
(3) 执行结果以邮件形式发送给MAILTO指定的用户。
用户cron任务:
当用户使用crontab命令来建立周期任务后,这项工就会被记录到/var/spool/cron/USERNAME这个文件中去,
他们以用户名来区分。
crontab [-u username] [-l|-e|-r]
-u 只要有root用户才能进行这个任务,即为其他用户建立或删除crontab任务。
-l 列出所有任务。
-e 编辑任务。
-r 删除所有crondtab任务,即删除/var/spool/cron/USERNAME文件,若要删除一项,可以用-e选项去编辑。
用户周期性任务定义格式:
* * * * * command to be executed
对应意义为:分 时 日 月 周 用户指令
每行定义一个任务,共六个字段。任务执行后的结果以邮件发给用户。
周期任务时间表示法:
分(0-59) 时(0-23) 日(1-31) 月(1-12) 周 (0-7 0和7都代表星期天)
星号* :表示任何时刻意思
逗号",":b表示时段分隔,指定多个时间点做某事,例如当我要下达的任务是在每天3:00月6:00时,
0 3,6 * * * COMMAND 时间参数还是5栏
减号“-”:表示一段时间范围,例如我要在8点到12点之间的每小时20分进行一
项工作, 20 8-12 * * * COMMAND
/n :n代表数字,即是每隔n个时间单位意思,例如每5分钟进行一次。
*/5 * * * * COMMAND
常见实例:
示例:
(1) 3 * * * *:每小时执行一次;每小时的第3分钟;
(2) 3 4 * * 5:每周执行一次;每周5的4点3分;
(3) 5 6 7 * *:每月执行一次;每月的7号的6点5分;
(4) 7 8 9 10 *:每年执行一次;每年的10月9号8点7分;
(5) 9 8 * * 3,7:每周三和周日8点09分;
(6) 0 8,20 * * 3,7:每周三和周日8点和20
(7) 0 9-18 * * 1-5:每周一到周五9点到18点
(8) */5 * * * *:每5分钟执行一次某任务;
应用实例:
1.每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202
[centos@dxlcentOS ~]$ crontab -e 进入编辑界面
0 */4 * * * cp -a /etc /backup/etc-$(date +\%Y\%m\%d\%H\%M)
2.每周2,4,6备份/var/log/messages文件至
/backup/messages_logs/目录中,保存的文件名形如messages-20150402
[centos@dxlcentOS ~]$ crontab -e
0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages-$(date +\%Y\%m\%d)
3.每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
[centos@dxlcentOS ~]$ crontab -e
0 */2 * * * cat /proc/meminfo | grep "^S" >> /stats/memory.txt
4.工作日的工作时间内,每两小时执行一次echo ”howdy”
[centos@dxlcentOS ~]$ crontab -e
0 9-18/2 * * 1-5 echo “howdy”
总结:1.cron周期任务最小时间单位是分钟。
2.定义COMMAND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义亦可。
3.某任务在指定的时间因关机未能执行,下次开机不会自动执行。
4.当修改之前定好的任务或新增循环任务时最好执行一下systemctl restart crond。
5.如果是系统管理使用的循环任务最好写入/etc/crontab。
6.避免系统资源分配不均,周与日月不可以同时并存。
anacron可换醒停机期间的工作任务
cron循环任务设定后,要是服务器因意外关机,那么在停机期间,cron设定的循环任务是不会运行的,当服务器开机后,也不会执行过去到达时间点的循环任务,只能等待下个时间点到来才执行。要想重新执行,anacron就可以解决这个问题。
anacron 是一个程序不是一个服务,当centos进入crontab排程时,anacron 会主动每一小时运行一次。
linux 每周日执行脚本,Linux任务计划和周期性任务执行相关推荐
- linux任务计划不执行时间,Linux任务计划、周期性任务执行
Linux任务计划.周期性任务执行 内容简要命令:mail, at, crontab 相信每个人都有使用闹钟的习惯,我们设定闹钟的种类有很多.比如说,只提醒一次.工作日提醒.休息日提醒等.在设定闹钟之 ...
- Linux任务计划、周期性任务执行
Linux任务计划.周期性任务执行 未来的某时间点执行一次任务:at, batch 周期性运行某任务: cron 电子邮件服务: smtp: simple mail transmission prot ...
- linux关机前执行脚本,Linux关机时执行指定脚本
要实现在Linux关机时执行某个脚本的具体思路 1.在文件夹 /etc/init.d/ 下创建关机时需要执行的脚本 file_name; 2.分别在文件夹 /etc/rc0.d/ 和 /etc/rc6 ...
- linux下bash脚本常用的十个技巧:显示执行脚本花费的时间,在脚本退出时杀死后台运行的程序,在脚本退出时跳出循环,读取命令行参数来决定循环次数
文章目录 1.显示执行脚本花费的时间 2.在脚本退出时杀死后台运行的程序 3.在脚本退出时跳出循环 4.读取命令行参数来决定循环次数 1.显示执行脚本花费的时间 网址:bash - How to ge ...
- linux计划任务执行bin文件,Linux任务计划和周期性任务执行
linux计划任务有两类 at:未来某个时间点仅执行一次任务就结束的指令,at指令执行时必须要有atd这个服务支持. crontab:可以以时间单位为分钟,小时,每天,每周,每月,每年等循环执行某任务 ...
- linux 文件备份定时任务脚本,linux服务器每天执行备份数据库定时任务脚本demo
30 04 * * * /data/jiaoben/mysql_backup.sh 每天4点执行脚本 qq571031767 数据作为网站及网络的灵魂,及时做好数据备份才是天道. 否则,某天一个错误操 ...
- linux du -sh 脚本,Linux之shell脚本(2)
Linux之shell脚本(2) 一.printf命令: printf是一个把从标准输入的字符按照你所要求的格式输出到标准输出即屏幕的命令.在很多时候,我们可能需要将自己的数据给他格式化输出的. 1. ...
- linux更改语言脚本,Linux shell脚本入门——shell语言脚本【CentOS】
认识脚本 是使用一种特定的描述性语言,依据一定的格式编写的可执行文件.脚本语言又被称为扩建的语言, 或者动态语言, 是一种编程语言, 用来控制软件应用程序, 脚本通常是以文本 (ASCⅡ) 保存, 只 ...
- linux内核优化脚本,linux内核高级优化脚本
linux内核高级优化脚本 可以用于hadoop生态圈环境的组件安装 linux内核调优 具体的每一步的解释请参考 03搭建cdh 备注:使用与centos6和centos7两个系统版本执行 [[em ...
最新文章
- 如何同步更新 Github 上 Fork 的项目?
- 10分钟精通SharePoint - SharePoint升级
- 你必须要知道的架构知识~目录
- Centos7常用命令[文件和目录]
- sql server 计算两个时间 相差的 几天几时几分几秒
- StratifiedKFold和KFold(5折验证)交叉验证的联系和区别Python实例
- 在POJO中使用ThreadLocal的Java嵌套事务
- python语言语块句的标记_NLTK基础教程学习笔记(十一)
- win7卸载python2.7_win7重装系统后设置Python2.7环境
- C# ToString()和Convert.ToString()的区别【转】
- python窗口动态实时显示时间_量化交易实时动态监视系统(纯Python,只需要浏览器就能用)-直接GitHub开源可下载...
- 百度地图API的使用教程以及案例
- matlab toolbox 向量,mosek optimization toolbox for matlab提供的函数简介
- 如何提高NLP模型鲁棒性和泛化能力?对抗训练论文串讲
- AS3 键盘的事件与实现
- Dijkstra + 堆优化
- MFC开发 常见控件库
- matlab 调用 lingo,lingo和matlab用哪个
- CTFshow wbe41 教你写脚本
- 如何将本地项目上传到码云
热门文章
- 动态修改dom node的两种方法性能比较
- Cloud for Customer的主页加载逻辑
- AWS load balancer
- ABAP maintenance view event handling
- java.lang.ClassNotFoundException: com.sap.exception.GlobalDefaultExceptionHandler
- SAP CRM 产品主数据搜索时的权限检查实现 - Product search authorization check
- One order search的框架代码里,硬编码了要去取Interaction object相关的数据
- SAP CRM和Cloud for Customer里客户主数据的层级维护
- 面试问题 - 只用位操作在ABAP里实现a+b
- linux mysql 释放x锁_MySQL 加锁处理分析-转载