12 linux定时任务:定时任务分类,定时任务软件分类,定时任务格式及定时任务中的符号,配置定时任务,定时任务总结10箴言
linux定时任务
1.定时任务分类:
a.crond(crontab)服务定时任务软件(软件包cronie)
b.atd 运行一次
c.anacron 非7*24小时运行的服务器
[root@oldboyedu-01 ~]# cp /etc/hosts{,.bak} //备份
[root@oldboyedu-01 ~]# ls /etc/host*
/etc/host.conf /etc/hosts /etc/hosts.allow /etc/hosts.bak /etc/hosts.deny
[root@oldboyedu-01 ~]# rpm -qa |grep cronie //检查软件是否安装
cronie-1.4.4-16.el6_8.2.x86_64
cronie-anacron-1.4.4-16.el6_8.2.x86_64
root@oldboyedu-01 ~]# rpm -ql cronie //查询软件里包含的内容
/etc/cron.d
/etc/cron.d/0hourly
/etc/cron.deny
/etc/pam.d/crond
/etc/rc.d/init.d/crond
/etc/sysconfig/crond
/usr/bin/crontab
/usr/sbin/crond
/usr/share/doc/cronie-1.4.4
/usr/share/doc/cronie-1.4.4/AUTHORS
/usr/share/doc/cronie-1.4.4/COPYING
/usr/share/doc/cronie-1.4.4/ChangeLog
/usr/share/doc/cronie-1.4.4/INSTALL
/usr/share/doc/cronie-1.4.4/README
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/man/man8/cron.8.gz
/usr/share/man/man8/crond.8.gz
/var/spool/cron
[root@oldboyedu-01 ~]# yum install -y ifconfig
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.163.com
* updates: mirrors.zju.edu.cn
No package ifconfig available.
Error: Nothing to do
[root@oldboyedu-01 ~]# rpm -qf `which ifconfig` //查找ifconfig属于哪个软件包
net-tools-1.60-114.el6.x86_64
[root@oldboyedu-01 ~]# rpm -qa |grep net-tools
net-tools-1.60-114.el6.x86_64
[root@oldboyedu-01 ~]# rpm -ql net-tools //
[root@oldboyedu-01 ~]# yum install -y net-tools
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirror01.idc.hinet.net
* extras: mirrors.163.com
* updates: mirrors.zju.edu.cn
Package net-tools-1.60-114.el6.x86_64 already installed and latest version
Nothing to do
2.crond(crontab)定时任务分类:
(1)系统定时任务:
[root@oldboyedu-01 ~]# ls -ld /etc/cron.*
drwxr-xr-x. 2 root root 4096 Dec 11 22:13 /etc/cron.hourly //系统定时任务每小时运行这个目录里的内容
drwxr-xr-x. 2 root root 4096 Dec 11 22:16 /etc/cron.daily //系统定时任务每天运行这个目录里的内容
drwxr-xr-x. 2 root root 4096 Sep 27 2011 /etc/cron.weekly //系统定时任务每周运行这个目录里的内容
drwxr-xr-x. 2 root root 4096 Dec 11 22:16 /etc/cron.monthly //系统定时任务每月运行这个目录里的内容,以上四个系统默认运行。系统中毒时!
-rw-------. 1 root root 0 Aug 24 2016 /etc/cron.deny
drwxr-xr-x. 2 root root 4096 Dec 11 22:16 /etc/cron.d
[root@oldboyedu-01 ~]# ls -l /etc/crontab //系统定时任务的配置文件之一
-rw-r--r--. 1 root root 457 Sep 27 2011 /etc/crontab
//系统定时任务+logrotate命令完成对日志切割、轮询。
[root@oldboyedu-01 ~]# ll /var/log/messages* /var/log/secure*
-rw------- 1 root root 1608 Dec 30 21:30 /var/log/messages
-rw-------. 1 root root 549951 Dec 30 16:50 /var/log/messages-20171230
-rw------- 1 root root 1375 Dec 30 21:30 /var/log/secure
-rw-------. 1 root root 17919 Dec 30 16:09 /var/log/secure-20171230
[root@oldboyedu-01 ~]# cat /etc/cron.daily/logrotate //
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
[root@oldboyedu-01 ~]# cat /etc/logrotate.d/syslog //
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
(2)用户定时任务:
[root@oldboyedu-01 ~]# crontab -l //查看当前的用户定时任务
no crontab for root
[root@oldboyedu-01 ~]# crontab -e //编辑用户定时任务,有语法检查功能,格式对不对。
no crontab for root - using an empty one
crontab: installing new crontab
[root@oldboyedu-01 ~]# crontab -l
#oldboy 20180108
[root@oldboyedu-01 ~]# cat /var/spool/cron/root //root用户定时任务,等价于crontab -l,可编辑vim
#oldboy 20180108
3.定时任务使用:
(1)确定定时任务当前正在运行
[root@oldboyedu-01 ~]# ps -ef |grep crond
root 1652 1 0 Dec28 ? 00:00:01 crond
root 44243 44092 0 23:05 pts/1 00:00:00 grep --color=auto crond
[root@oldboyedu-01 ~]# /etc/init.d/crond status //等价于ps -ef |grep crond
crond (pid 1652) is running...
(2)确保定时任务开机自启动
[root@oldboyedu-01 ~]# chkconfig |grep crond
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@oldboyedu-01 ~]# crontab -e //编辑用户定时任务
no crontab for root - using an empty one
crontab: installing new crontab
[root@oldboyedu-01 ~]# crontab -l //查看当前的用户定时任务
no crontab for root
4.定时任务相关文件:
[root@oldboyedu-01 ~]# cat /var/spool/cron/root //1.定时任务的配置文件所在的目录。
#oldboy 20180108
[root@oldboyedu-01 ~]# tail -5 /var/log/cron //2.定时任务日志文件,运行过程的一个记录。
Dec 30 23:00:01 oldboyedu-01 CROND[44227]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Dec 30 23:01:01 oldboyedu-01 CROND[44232]: (root) CMD (run-parts /etc/cron.hourly)
Dec 30 23:01:01 oldboyedu-01 run-parts(/etc/cron.hourly)[44232]: starting 0anacron
Dec 30 23:01:01 oldboyedu-01 run-parts(/etc/cron.hourly)[44241]: finished 0anacron
Dec 30 23:10:01 oldboyedu-01 CROND[44253]: (root) CMD (/usr/lib64/sa/sa1 1 1)
//定时任务日志格式:时间,哪个用户的定时任务,运行的什么命令/脚本
[root@oldboyedu-01 ~]# cat /etc/cron.deny //3.哪些用户禁止使用定时任务-定时任务黑名单。
[root@oldboyedu-01 ~]#
5.定时任务的格式: //系统的
[root@oldboyedu-01 ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# 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
公式:分时日月周,什么时间做什么事。
口诀:什么时间做什么事,然后再想下一次什么时候执行,什么时间,做什么事。


------------图crond
6.定时任务书写流程
eg:每隔5分钟同步时间
[root@oldboyedu-01 ~]# date //插曲:同步时间。
Sat Dec 30 23:52:27 CST 2017
[root@oldboyedu-01 ~]# ntpdate ntp1.aliyun.com //步骤一:什么命令
8 Jan 11:59:46 ntpdate[44284]: step time server 182.92.12.11 offset 734824.020707 sec
[root@oldboyedu-01 ~]# /usr/sbin/ntpdate ntp1.aliyun.com //写完整形式!
[root@oldboyedu-01 ~]# date
Mon Jan 8 11:59:49 CST 2018
root@oldboyedu-01 ~]# crontab -e //步骤二:命令写入定时任务中
crontab: installing new crontab
[root@oldboyedu-01 ~]# crontab -l
#oldboy 20180108
#sync time by crmn per 5 minites
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
[root@oldboyedu-01 ~]# date //步骤三:验证定时任务是否运行
Mon Jan 1 00:00:01 CST 2018
[root@oldboyedu-01 ~]# date -s "20180101" //法一:查看命令是否运行成功
Mon Jan 1 00:00:00 CST 2018
[root@oldboyedu-01 ~]# date
Mon Jan 8 12:16:03 CST 2018
[root@oldboyedu-01 ~]# tail -5 /var/log/cron //法二:查看定时任务日志(不会报错!)
......
Jan 8 12:10:02 oldboyedu-01 CROND[44334]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com)
Jan 8 12:10:02 oldboyedu-01 CROND[44335]: (root) CMD (/usr/lib64/sa/sa1 1 1)
eg:每分钟将自己的名字追加到 /oldboy/oldboy.txt //可拿一分钟来测试,后用要求时间。
[root@oldboyedu-01 ~]# which echo
/bin/echo
[root@oldboyedu-01 ~]# crontab -e
crontab: installing new crontab
[root@oldboyedu-01 ~]# crontab -l
#oldboy 20180108
#sync time by crmn per 5 minites
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
#echo name to file
* * * * * /bin/echo oldboy-crond >>/oldboy/oldboy.txt
[root@oldboyedu-01 ~]# tail -f /oldboy/oldboy.txt //检查法一
oldboy-crond
oldboy-crond
^C
[root@oldboyedu-01 ~]# tail -f /var/log/cron //检查法二
Jan 8 12:25:01 oldboyedu-01 CROND[44672]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com)
Jan 8 12:29:19 oldboyedu-01 crontab[44682]: (root) BEGIN EDIT (root)
Jan 8 12:29:47 oldboyedu-01 crontab[44682]: (root) REPLACE (root)
Jan 8 12:29:47 oldboyedu-01 crontab[44682]: (root) END EDIT (root)
Jan 8 12:29:49 oldboyedu-01 crontab[44684]: (root) LIST (root)
Jan 8 12:30:01 oldboyedu-01 crond[1652]: (root) RELOAD (/var/spool/cron/root)
Jan 8 12:30:01 oldboyedu-01 CROND[44688]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com)
Jan 8 12:30:01 oldboyedu-01 CROND[44689]: (root) CMD (/bin/echo oldboy-crond >>/oldboy/oldboy.txt)
Jan 8 12:30:01 oldboyedu-01 CROND[44690]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jan 8 12:31:01 oldboyedu-01 CROND[44700]: (root) CMD (/bin/echo oldboy-crond >>/oldboy/oldboy.txt)
Jan 8 12:32:01 oldboyedu-01 CROND[44705]: (root) CMD (/bin/echo oldboy-crond >>/oldboy/oldboy.txt)
7.9句箴言:
(1)定时任务之前加注释:谁在什么时间做什么?(5W+1H)
(2)使用脚本替代命令行定时任务:一般超过2条;命令的集合。
eg:每分钟显示当前系统时间为2018-01-08_6追加到/oldboy/time.log
[root@oldboyedu-01 ~]# date +%F_%w
2018-01-08_1
[root@oldboyedu-01 ~]# date +%F_%w >>/oldboy/time.log
[root@oldboyedu-01 ~]# cat /oldboy/time.log
2018-01-08_1
[root@oldboyedu-01 ~]# mkdir -p /service/script //统一脚本路径
[root@oldboyedu-01 ~]# vim /service/script/show.sh
[root@oldboyedu-01 ~]# sh /service/script/show.sh
2018-01-08_1
[root@oldboyedu-01 ~]# sh /service/script/show.sh >>/oldboy/time.log
You have new mail in /var/spool/mail/root
[root@oldboyedu-01 ~]# cat /oldboy/time.log
2018-01-08_1
2018-01-08_1
root@oldboyedu-01 ~]# crontab -e
crontab: installing new crontab
[root@oldboyedu-01 ~]# crontab -l
#oldboy 20180108
#sync time by crmn per 5 minites
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
#echo name to file
* * * * * /bin/echo oldboy-crond >>/oldboy/oldboy.txt
#print time to file by xx at xxx
* * * * * /bin/sh /service/script/show.sh >>/oldboy/time.log //
[root@oldboyedu-01 ~]# tail -5 /var/log/cron
......
Jan 8 15:41:01 oldboyedu-01 CROND[44928]: (root) CMD (/bin/sh /service/script/show.sh >>/oldboy/time.log)
[root@oldboyedu-01 ~]# tail -f /oldboy/time.log
2018-01-08_1
2018-01-08_1
2018-01-08_1
(3)定时任务中date命令%百分号。
注意:
也可以这样:* * * * * date +\%F_\%w >>/oldboy/time.log 否则:
[root@oldboyedu-01 ~]# tail -f /var/log/cron
Jan 8 15:50:01 oldboyedu-01 CROND[44992]: (root) CMD (date +)
(4)运行脚本一定要用/bin/sh 或者sh。eg:/bin/sh /service/script/show.sh
[root@oldboyedu-01 ~]# ll /bin/bash /bin/sh
-rwxr-xr-x. 1 root root 942200 Mar 23 2017 /bin/bash
lrwxrwxrwx. 1 root root 4 Dec 11 22:10 /bin/sh -> bash
(5)定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1)或者追加到文件中 >>/tmp/oldboy.txt 2>&1
譬如:
#sync time by crmn per 5 minites
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
#echo name to file
#* * * * * /bin/echo oldboy-crond >>/oldboy/oldboy.txt 2>&1
说明:
[root@oldboyedu-01 ~]# cat /dev/null
[root@oldboyedu-01 ~]# cat /dev/null >/oldboy/oldboy.txt
[root@oldboyedu-01 ~]# >/oldboy/oldboy.txt
>/dev/null 2>&1 ==》>/dev/null 2>/dev/null
>>/oldboy/oldboy.txt 2>&1 ==》>>/oldboy/oldboy.txt 2>>/oldboy/oldboy.txt
重点说明:在定时任务中运行的命令或者脚本,都要定向到空(>/dev/null 2>&1)或者追加到某文件(>>/tmp/time.log 2>&1)
//磁盘满了,df -h还有剩余空间(block),df -i inode用光了。
企业故障案例:如果定时任务规则结尾不加>/dev/null 2>&1 或者追加到文件中>>/tmp/oldboy.txt 2>&1,很容易导致硬盘inode 空间被占满,从而系统服务不正常,现象如下:
a.邮件的软件没有开启----大量小文件堆积在var/spool/postfix/maildrop/,即inode满了。
b.邮件的软件开启 ----定时任务会不断的给root用户发邮件。
You have new mail in /var/spool/mail/root
[root@oldboyedu-01 ~]# /etc/init.d/postfix status //查看邮件服务是否开启
master (pid 1611) is running...
案例模拟验证:
a.
关闭邮件服务
[root@oldboyedu-01 ~]# /etc/init.d/postfix stop
Shutting down postfix: [ OK ]
[root@oldboyedu-01 ~]# chkconfig postfix off
[root@oldboyedu-01 ~]# chkconfig |grep postfix
postfix 0:off 1:off 2:off 3:off 4:off 5:off 6:off
加多个错误的定时任务,后盯着/var/spool/postfix/maildrop/目录变化!
[root@oldboyedu-01 ~]# crontab -e
crontab: installing new crontab
* * * * * /us/sin/ntdat ntp1.aliuan.com //yy 900 p
900 more lines
[root@oldboyedu-01 ~]# tail -f /var/log/cron
Jan 8 17:01:59 oldboyedu-01 CROND[48428]: (root) CMD (/us/sin/ntdat ntp1.aliuan.com)
Jan 8 17:02:02 oldboyedu-01 crond[48430]: (root) INFO (Job execution of per-minute job scheduled for 17:01 delayed into subsequent minute 17:02. Skipping job run.)
Jan 8 17:02:03 oldboyedu-01 CROND[48441]: (root) CMD (/us/sin/ntdat ntp1.aliuan.com)
Jan 8 17:02:03 oldboyedu-01 crond[48422]: (root) INFO (Job execution of per-minute job scheduled for 17:01 delayed into subsequent minute 17:02. Skipping job run.)
^C
[root@oldboyedu-01 ~]# ls -l /var/spool/postfix/maildrop/ |wc -l
200
[root@oldboyedu-01 ~]# ls -l /var/spool/postfix/maildrop/ |wc -l
237
[root@oldboyedu-01 ~]# ls -l /var/spool/postfix/maildrop/ |wc -l
296
//如若crontab -e加上为*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1则inode不再变化。
[root@oldboyedu-01 ~]# ls -l /var/spool/postfix/maildrop/ |wc -l
4190
[root@oldboyedu-01 ~]# ls -l /var/spool/postfix/maildrop/ |wc -l
4190
[root@oldboyedu-01 ~]# ls -l /var/spool/postfix/maildrop/ |wc -l
4190
(6)避免不必要的程序及命令输出
(7)打包压缩使用相对路径(切到目标目录的上一级打包目标)
eg:每天晚上12点把/etc/services文件打包备份到/backup目录下
[root@oldboyedu-01 ~]# cd / //步骤一:写命令
[root@oldboyedu-01 /]# mkdir -p /backup
[root@oldboyedu-01 /]# tar -czf /backup/etc_service.tar.gz etc/services
[root@oldboyedu-01 /]# ls /backup/
etc_service.tar.gz
[root@oldboyedu-01 /]# tar tf /backup/etc_service.tar.gz
etc/services
[root@oldboyedu-01 /]# tar -czf /backup/etc_service-$(date +%F).tar.gz etc/services //
[root@oldboyedu-01 /]# ls /backup/
etc_service-2018-01-08.tar.gz etc_service.tar.gz
[root@oldboyedu-01 /]# vim /service/script/bak-ser.sh //步骤二:写脚本
[root@oldboyedu-01 ~]# cat /service/script/bak-ser.sh
cd / && tar -czf /backup/etc_service-$(date +%F).tar.gz etc/services
root@oldboyedu-01 ~]# ls /backup/ //测试OK
etc_service-2018-01-08.tar.gz etc_service.tar.gz
[root@oldboyedu-01 ~]# mv /backup/etc_service-2018-01-08.tar.gz /backup/etc_service-2018-01-08.tar.gz-bak
[root@oldboyedu-01 ~]# sh /service/script/bak-ser.sh
[root@oldboyedu-01 ~]# ls /backup/
etc_service-2018-01-08.tar.gz etc_service-2018-01-08.tar.gz-bak etc_service.tar.gz
[root@oldboyedu-01 ~]# crontab -e //步骤三:书写定时任务,举例每分钟执行
crontab: installing new crontab
[root@oldboyedu-01 ~]# crontab -l|tail -2
#backup services by xx at xxx
* * * * * /bin/sh /service/script/bak-ser.sh >/dev/null 2>&1
[root@oldboyedu-01 ~]# tail -f /var/log/cron //查看日志
Jan 8 18:13:36 oldboyedu-01 crontab[64387]: (root) BEGIN EDIT (root)
Jan 8 18:14:01 oldboyedu-01 crond[1652]: (root) RELOAD (/var/spool/cron/root)
Jan 8 18:14:29 oldboyedu-01 crontab[64387]: (root) REPLACE (root)
Jan 8 18:14:29 oldboyedu-01 crontab[64387]: (root) END EDIT (root)
Jan 8 18:14:59 oldboyedu-01 crontab[64389]: (root) LIST (root)
Jan 8 18:15:01 oldboyedu-01 crond[1652]: (root) RELOAD (/var/spool/cron/root)
Jan 8 18:15:01 oldboyedu-01 CROND[64392]: (root) CMD (/bin/sh /service/script/bak-ser.sh >/dev/null 2>&1)
Jan 8 18:16:01 oldboyedu-01 CROND[64400]: (root) CMD (/bin/sh /service/script/bak-ser.sh >/dev/null 2>&1)
[root@oldboyedu-01 ~]# ls /backup/ //查看结果
etc_service-2018-01-08.tar.gz etc_service-2018-01-08.tar.gz-bak etc_service.tar.gz
//步骤四:书写定时任务,按照要求来。
[root@oldboyedu-01 ~]# crontab -e
crontab: installing new crontab
[root@oldboyedu-01 ~]# crontab -l|tail -2
#backup services by xx at xxx
00 00 * * * /bin/sh /service/script/bak-ser.sh >/dev/null 2>&1 //注意啦!
(8)定时任务脚本中的程序文件,尽量用绝对路径。
(9)系统与命令位置有关的环境变量问题。
eg:每分钟显示当前时间2018-01-08_1和当前服务的IP地址到/backup/ip.log
[root@oldboyedu-01 ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2'
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[root@oldboyedu-01 ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
10.0.0.200
[root@oldboyedu-01 ~]# tail /service/script/ip.sh
ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
date +%F_%w
[root@oldboyedu-01 ~]# /bin/sh /service/script/ip.sh
10.0.0.200
2018-01-08_1
[root@oldboyedu-01 ~]# /bin/sh /service/script/ip.sh >>/backup/ip.log
[root@oldboyedu-01 ~]# cat /backup/ip.log
10.0.0.200
2018-01-08_1
[root@oldboyedu-01 ~]# crontab -e
crontab: installing new crontab
[root@oldboyedu-01 ~]# crontab -l|tail -4
#backup services by xx at xxx
#00 00 * * * /bin/sh /service/script/bak-ser.sh >/dev/null 2>&1
#print ip time by meng at 2018.01.08
* * * * * /bin/sh /service/script/ip.sh >>/backup/ip.log 2>&1 //注意啦!
[root@oldboyedu-01 ~]# cat /backup/ip.log
10.0.0.200
2018-01-08_1
/service/script/ip.sh: line 1: ifconfig: command not found //问题显示!
2018-01-08_1
[root@oldboyedu-01 ~]# tail -f /var/log/cron
Jan 8 18:44:01 oldboyedu-01 CROND[64517]: (root) CMD (/bin/sh /service/script/ip.sh >>/backup/ip.log 2>&1)
问题原因:
定时任务运行脚本的时候PATH里面,有很少的目录 /usr/bin和/bin,其他都不认识。
[root@oldboyedu-01 ~]# which date ifconfig
/bin/date
/sbin/ifconfig
[root@oldboyedu-01 ~]# tail /service/script/ip.sh //修改/service/script/ip.sh文件
/sbin/ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
date +%F_%w
[root@oldboyedu-01 ~]# tail -f /var/log/cron
......
Jan 8 18:55:01 oldboyedu-01 CROND[64635]: (root) CMD (/bin/sh /service/script/ip.sh >>/backup/ip.log 2>&1)
[root@oldboyedu-01 ~]# cat /backup/ip.log
......
10.0.0.200
2018-01-08_1
附加说明:
(1)使用命令的绝对路径
(2)在脚本的开头重新定义一下PATH
[root@oldboyedu-01 ~]# echo $PATH
/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
[root@oldboyedu-01 ~]# tail /service/script/ip.sh
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
/sbin/ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
date +%F_%w
a.自己总结磁盘空间满了系列的排查过程及常见原因。
b.因为定时任务脚本中环境变量的问题导致的故障。(java服务无法执行问题的网友案例)


浙公网安备 33010602011771号