Linux基础 crontab定时任务
linux定时任务:
程序、进程、守护进程
程序:软件,可执行的代码
进程:正在执行的命令、服务,执行完成,就会退出
守护进程(服务):在后台一直运行的进程
sshd:
守护进程:daemon
1)检查crond服务是否允许
/etc/init.d/crond status
/etc/init.d/crond start
chkconfig crond on
2)定时任务的写法
* * * * * cmd
分 时 日 月 周 执行的命令
3)举例
编辑定时任务crontab -e
* * * * * echo 1234567 >>/tmp/oldboy.txt
查看定时任务crontab -l
练习:
每隔两个小时,重启一下sshd服务
4)定时任务
一定要,命令行,先测试!!!
10 */2 * * * 每隔2小时的每分钟,都执行
5)定时任务的取值范围
* * * * * cmd
分 时 日 月 周 执行的命令
0-59 0-23 1-31 1-12 0-6
练习:
每周3,下午6点整,echo jiaozuoye
00 18 * * 3
6)注意
*/3 每隔多久执行一次
7)例子:
每天下午的2点整和4点整,京东秒杀 echo jingdongmiaosha
00 14,16 * * * echo jingdongmiaosha
练习:
每年的3、6、11月份,1-7号,早上8点整到晚上8点整 echo 进行大酬宾
00 8-20 1-7 3,6,11 * echo dachoubin
8:注意事项
a.定时任务执行命令的时候,最好使用命令的决对路径。
b.定时任务一定要加注释!(君子协议)
c.特殊符号需要转义;例子:* * * * * echo "`date +\%F\ \%T`" >>/tmp/time.txt
d.最好不要让直行的命令,有输出,如果避免不了有输出,就把它定向到空(黑洞)
e.定时任务中,严禁使用相对路径
f.尽量使用crontab -e命令来添加定时任务!因为crontab带有语法检查。
不加引号:只能输出单行文本;能解析变量
单引号: 可以输出多行文本; 不能解析变量,适合输出带有特殊符号的内容
双引号: 可以输出多行文本;能解析变量
标准输出:1>(默认就是标准输出)
错误输出:2>
黑洞:/dev/null
9:批量添加定时任务
crontab -e编辑定时任务,实际上就是编辑文件/var/spool/cron/root
#上课
30 9 * * 0 /oldboy.sh &>/dev/null
echo -e '#上课\n30 9 * * 6 /oldboy.sh &>/dev/null' >>/var/spool/cron/root
建个回收站recovery
alias rm = "mv -f -t /recovery"
直接删除\rm \取消别名作用
crontab -e
* */2 * * * \rm -rf /recovery/*
#每两小时清空一次recovery
minute hour day month dayofweek command
minute是分钟,取值范围:0-59
hour段是小时。取值范围:0-23
day段是一个月中的第几天,取值范围:1-31
month是一年中的第几个月,取值范围:1-12
dayofweek是一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天。
command是定时运行的命令。
root表示以root用户身份来运行
run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本
所有可用值用 * 表示
整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4
指定数值由逗号分开。如:3,4,6,8表示这四个指定整数。
符号“/”指定步进设置。“/<interger>”表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3用来运行每三个月份运行指定任务。
以“#”开头的为注释行,不会被执行。
如果一个cron任务需要定期而不是按小时,天,周,月来执行,则需要添加/etc/cron.d目录。这个目录下的所有文件和文件/etc/crontab语法相同,查看样例:
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom scrīpt the first day of every month at 4:10AM
10 4 1 * * /root/scrīpts/backup.sh
除了root用户之外的用户可以执行crontab配置计划任务。所有用户定义的crontab存储在目录/var/spool/cron下,任务会以创建者的身份被执行。要以特定用户创建一个crontab,先以该用户登录,执行命令crontab -e,系统会启动在VISUAL或者EDITOR中指定的的编辑软件编辑crontab。文件内容与/etc/crontab格式相同。示例如下:
0 3 * * * /home/dbbackup/db1backup.sh backup
0 4 * * * /home/dbbackup/db2backup.sh backup
表示每天3点执行/home/dbbackup/db1backup.sh backup,4点执行/home/dbbackup/db2backup.sh backup,如果是每五分钟执行一次可改为:
*/5 * * * * /home/dbbackup/db2backup.sh backup
当更改的crontab需要保存时,文件会保存在成如下文件/var/spool/cron/username。文件名会根据用户名而不同。
cron服务会每分钟检查一次/etc/crontab、/etc/cron.d/、/var/spool/cron文件下的变更。如果发现变化,就会下载到存储器中。因此,即使crontab文件改变了,程序也不需要重新启动。推荐自定义的任务使用crontab -e命令添加,退出后用/etc/init.d/crond restart命令重启crond进程,官方文件说不用重启进程,但我遇到不重启无法运行任务的情况。开始不知道/etc/crontab文件中的run-parts是什么意思,直接把命令按照/etc/crontab的格式加上总是无法运行,后来才知道run-parts是指后面跟着的是文件夹。
四.crontab服务的启动关闭
sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
在Linux环境下的安装Nginx
第一步,安装gcc的环境。 [root@nginx home]# yum install gcc-c++ 第二步,安装第三方依赖包。 // PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。 [root@nginx home]# yum install -y pcre pcre-devel // zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。 [root@nginx home]# yum install -y zlib zlib-devel // OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 [root@nginx home]# yum install -y openssl openssl-devel 这里使...
- 下一篇
linux下vmstat命令性能监测与优化
vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。 语法 vmstat(选项)(参数) 选项 -a:显示活动内页; -f:显示启动后创建的进程总数; -m:显示slab信息; -n:头信息仅显示一次; -s:以表格方式显示事件计数器和内存状态; -d:报告磁盘状态; -p:显示指定的硬盘分区状态; -S:输出信息的单位。 参数 事件间隔:状态信息刷新的时间间隔; 次数:显示报告的次数。 实例 vmstat 3 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 320 42188 167332 1534368 0 0 4 7 1 0 0 0 99 0 0 0 0 320 42188 167332 1534392 0 0 0 0 1002...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6