03.31 Linux定时任务
来源:互联网 发布:q20 软件 编辑:程序博客网 时间:2024/05/17 08:10
第一章 开机启动项的优化
- crond(定时任务)
- rsyslog(系统日志服务)
- sysstat(查看系统运行状态)
- sshd(远程连接)
- network(网络服务)
[root@Never-downtime ~]# chkconfig | egrep -v "crond|rsyslog|sysstat|sshd|network"[root@Never-downtime ~]# chkconfig | egrep -v "crond|rsyslog|sysstat|sshd|network"|awk '{print "chkconfig "$1" off"}' |bash如果使用sed命令操作?[root@Never-downtime oldboy]# chkconfig | egrep "rsyslog|sysstat|sshd|network|crond" |sed -r 's#(.*)0:.*$#chkconfig \1on#g' |bash
第二章 程序/进程/守护进程
程序(文件):放在磁盘里的,程序代码组成,但是没有在计算机内执行,当前没有执行。
进程:所谓进程就是计算机中正在执行/运行的程序。运行起来的程序。
守护进程:一直运行的程序
[root@Never-downtime ~]# ps -ef|egrep sshdroot 1422 1 0 Mar30 ? 00:00:00 /usr/sbin/sshdroot 4014 1422 0 11:30 ? 00:00:01 sshd: root@pts/1 root 5805 1422 0 14:12 ? 00:00:01 sshd: root@pts/0 root 6162 5807 0 14:45 pts/0 00:00:00 egrep --color=auto sshd[root@Never-downtime ~]# ps -ef|egrep crondroot 1542 1 0 Mar30 ? 00:00:00 crondroot 6170 5807 0 14:46 pts/0 00:00:00 egrep --color=auto crond
第三章 什么是crond?
crond的含义
Crond是Linux系统中用来定期执行命令/脚本或指定程序的一种服务或软件。一般情况下,我们安装完Centos操作系统之后,默认便会启动Crond任务调度服务,在我们前面的系统安装及开机启动优化的设置中,我么也设置保留了Crond开机自启动。Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的工作。如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作。这个Crond定时任务服务就相当于我们平时早起使用的闹钟一样。
crontab命令
系统任务调度
系统周期性索要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
系统任务调度存放路径
/etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# 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
用户任务调度
用户定期执行的工作,比如数据备份、定时邮件提醒等。用户可以使用crontab工具来定制自己的计划任务,所有用户定义的crontab文件都被保存在/var/spool/cron目录中,其文件名与用户名一致。
用户任务调度存放路径
/etc/cron.deny 该文件中所列用户不允许使用crontab命令。/var/spool/cron 所有用户crontab文件存放目录,以用户名命名。
crontab文件的含义
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段表示一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段。
存放路径 /var/spool/cron/root
日志查看路径/var/log/cron
第四章 定时任务案例【1】
案例:设置一个定时任务显示ip地址和日期?
创建环境
[root@Never-downtime ~]# mkdir -p /server/scripts/
命令行测试
方法1[root@Never-downtime ~]# ifconfig eth0 |awk -F "[ :]+" 'NR==2{print $4}'192.168.56.129方法2[root@Never-downtime ~]# ifconfig eth0 |sed -n '2p' | awk -F '[addr:| Bca]+' '{print $3}'192.168.56.129[root@Never-downtime scripts]# touch /server/scripts/ip.sh[root@Never-downtime scripts]# cd /server/scripts && cat ip.sh /bin/hostname -I;/bin/date +%F#%T
创建脚本写入定时任务
[root@Never-downtime ~]# crontab -e##ip+date 2017-04-01* * * * * /bin/sh /server/scripts/ip.sh>/data/ip.txt
检查结果
[root@Never-downtime scripts]# cat /data/ip.txt 192.168.56.129 2017-04-01#20:06:01
查看定时任务日志
Apr 1 20:16:01 Never-downtime CROND[8182]: (root) CMD (/bin/sh /server/scripts/ip.sh>/data/ip.txt)Apr 1 20:17:01 Never-downtime CROND[8189]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1)Apr 1 20:17:01 Never-downtime CROND[8190]: (root) CMD (/bin/sh /server/scripts/ip.sh>/data/ip.txt)Apr 1 20:18:01 Never-downtime CROND[8197]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1)Apr 1 20:18:01 Never-downtime CROND[8198]: (root) CMD (/bin/sh /server/scripts/ip.sh>/data/ip.txt)
第五章 定时任务案例【2】
定时打包
命令行测试
[root@Never-downtime /]# cd /etc/ && tar cf /tmp/services$(date +%F).tar.gz services
创建并写入脚本
[root@Never-downtime /]# vim /server/scripts/tar+date.sh cd /etc/ && /bin/tar cf /tmp/services$(date +%F).tar.gz services
创建定时任务
##tar+date* * * * * /bin/sh /server/scripts/tar+date.sh >/dev/null 2>&1
查看定时任务系统日志
[root@Never-downtime ~]# tail /var/log/cronApr 2 15:00:01 Never-downtime CROND[12529]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com>/dev/null 2>&1)Apr 2 15:00:01 Never-downtime CROND[12530]: (root) CMD (/usr/lib64/sa/sa1 1 1)Apr 2 15:00:01 Never-downtime CROND[12531]: (root) CMD (/bin/echo "guoqunchao">>/data/myname.txt 2>&1)Apr 2 15:01:01 Never-downtime CROND[12563]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com>/dev/null 2>&1)Apr 2 15:01:01 Never-downtime CROND[12564]: (root) CMD (/bin/sh /server/scripts/tar+date.sh >/dev/null 2>&1)Apr 2 15:01:01 Never-downtime CROND[12565]: (root) CMD (/bin/echo "guoqunchao">>/data/myname.txt 2>&1)Apr 2 15:01:01 Never-downtime CROND[12566]: (root) CMD (/bin/sh /server/scripts/ip.sh>/data/ip.txt 2>&1)Apr 2 15:01:01 Never-downtime CROND[12568]: (root) CMD (run-parts /etc/cron.hourly)Apr 2 15:01:01 Never-downtime run-parts(/etc/cron.hourly)[12568]: starting 0anacronApr 2 15:01:01 Never-downtime run-parts(/etc/cron.hourly)[12584]: finished 0anacron
第六章 其它案例如下
###每分钟矫正时间:*/1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1###每分钟向文件写入文本 */1 * * * * /bin/echo "guoqunchao" >>/server/log/name.log >/dev/null 2>&1###定时关机 49 19 31 * * /sbin/shutdown -h now >/dev/null 2>&1###每分钟显示一个+追加到/server/log/jiahao.log* * * * * /bin/echo + >> /server/log/jiahao.log
第七章 重定向详解
把数据/文件的内容,放到你想要的地方,箭头的方向表示水流的方向数据的方向。
<这个功能在Linux里可是经常用的,实际上就是你看到的下面的屏幕上的数据,传输到其他地方,执行命令时,这个命令可能会通过文件读入数据,经过处理之后,再将数据输出到屏幕。
>或1> 追加重定向:把前面输出的东西输入到后边的文件中,会删除文件原有内容。>>或1>> 追加重定向:把前面输出的东西追加到后边的文件中,不会删除文件原有内容。<或<0 输入重定向:输入重定向用于改变命令的输入,指定输入内容,后跟文件名。<<或<<0 输入重定向:后跟字符串,用来表示“输入结束”,也可以用ctrl+d来结束输入。2> 错误重定向:把错误信息输入到后面的文件中,会删除文件原有内容。2>> 错误追加重定向:把错误信息追加到后边的文件中。不会删除文件原有内容。
正确和错误重定向
>/tmp/oldboy.txt 2>/tmp/oldboy.txt ###比较长>/tmp/oldboy.txt 2>&1 ###最常用&>/tmp/oldboy.txt ###个人比较喜欢
第八章 定时任务案例【7】
如果定时任务规则结尾不加>/dev/null 2>&1或者追加到文件中>>/tmp/oldboy 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。>/dev/null 2>&1>>/tmp/oldboy 2>&1(1)删除大量的小文件/var/spool/postfix/maildrop/下所有的文件。(2)ls |grep rm(3)删除上级目录(看好目录的属性,所有者 属组 权限)(4)临时开启postfix(sendmail)服务
第九章 常见报错注释
第十章 crond章节重点
- 用户的定时任务,使用crontab -e 自定义定时任务项目,分为六段,分、时、日、月、周、指令。
- 系统的/etc/crontab定时任务项目分为7段 ,分、时、日、月、周、执行者、指令。
- crontab定时任务的10个生产基本要领和调试技巧,尤其是要学会看服务日志来调试。
- 生产环境使用crontab定时任务要注意的10点箴言。
- 重视生产的案例及通过案例为载体来学习巩固技术知识(磁盘空间满了系列)。
inode满
df -i查看[root@Never-downtime /]# du -sh /*[root@Never-downtime /]# du -sh /usr/[root@Never-downtime /]# du -sh /usr/*定时任务没有定向到空或文件,如没有定向会向root用户发送邮件,长久下来会生成很多的文件,导致inode被占用完
block满
空间被使用完:空间被大量数据文件占用完文件硬链接数为0,但是进程调用,block没有完全释放。[root@Never-downtime /]# lsof |egrep deletecrontab定时任务的10个生产基本要领和调试技巧,尤其是要学会看服务日志来调试。
总结
要领1:为定时任务规则加必要的注释要领2:执行shell脚本任务前加/bin/sh要领3:定时任务命令或脚本结尾加>dev/null 2>&1 &>dev/null 1>/dev/null 2>/dev/null 2>&1要领4:定时任务命令或程序最好写到脚本里执行。要领5:在制定用户下执行相关的定时任务。要领6:生产任务程序不要随意打印输出信息。要领7:定时任务执行的脚本要规范路径(/server/scripts)要领8:配置定时任务规范操作过程。要领9:crond服务必须首先开启要领10:查看定时任务日志 tail /var/log/cron
- 03.31 Linux定时任务
- linux 定时任务 定时访问
- Linux定时执行任务
- linux 定时任务 crond
- Linux定时任务
- linux crond 定时任务
- linux定时任务cron
- Linux 定时任务
- linux下定时任务
- linux 定时任务
- linux 定时任务
- linux定时任务
- Linux定时任务
- Linux Crontab 定时任务
- Linux 定时任务 crontab
- linux定时任务
- Linux定时任务设置
- Linux定时任务
- 移植不同类型的STM32时候报错,parsing restarts here after previous syntax error
- 人生感言
- 1019. 数字黑洞 (20)
- GRUB2编译
- 新博客地址:akirakiwi.github.io
- 03.31 Linux定时任务
- 基于TCP的客户服务器模式的三种通信
- Qt下MiGW编译出来的.dll和.a文件小结
- centos7.2 挂载NTFS格式移动硬盘
- 这样设置你的IDEA,让你看起来厉害十倍!
- 摄影测量后方交会MATLAB
- S5PV210的启动过程概述
- 使用Xen-tools工具建Pv domain
- Linux下 环境变量/etc/profile、/etc/bashrc、~/.bashrc的区别