Linux系統定時任務crond那些事


1 Linux系統定時任務

1.1 定時任務介紹

1.1.1 Crond是什么?

Crond是linux系統中用來定期執行命令或指定程序任務的一種服務或軟件。Centos5/6 linux系統安裝完操作系統默認會啟動crond任務調度服務,系統開機啟動優化保留crond服務開機自啟動。
Crond服務定期(默認是每分鍾檢查一次)檢查系統中是否有要執行的任務工作。這個crond定時任務服務就相當於我們平時使用的鬧鍾一樣。特殊需求:(秒級別)crond服務搞不定了,工作中一般寫腳本守護程序執行。

1.1.2 程序文件和進程說明

程序文件:程序代碼組成,但是沒有在計算機內執行,即當前沒有執行
進程:所謂的進程就是計算機中正在執行的程序
守護程序或守護進程:守護進程就是一直運行的程序(linux運行必須要啟動的程序)

操作命令:

#linux優化內容,保留sshd|network|rsyslog|crond|sysstat這五個服務
[root@oldboy oldboy]# chkconfig --list | grep "3:on" | grep -Ev "sshd|network|rsyslog|crond|sysstat" | awk '{print "chkconfig",$1,"off"}'| bash
#查看linux系統當前正在運行的服務
[root@oldboy oldboy]# chkconfig --list | grep "3:on"  
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off

1.1.3 不同系統定時任務的分類

windows 7 系統的定時任務

開始→所有程序→附件→系統工具→選擇任務計划程序

Linux系統的定時任務

         Linux系統中定時任務調度的工作可以分為以下兩種情況:

1、linux系統自身定期執行的任務工作:系統周期性自動執行的任務工作,如輪詢系統日志、備份系統數據、清理系統緩存等,這些任務無需我們人為干預,例如:

[root@oldboy mail]# ls -l /var/log/messages*    ->系統日志
-rw------- 1 root root 416686 Apr 30 12:41 /var/log/messages
-rw------- 1 root root 403072 Apr  9 19:41 /var/log/messages-20180409
-rw------- 1 root root 604646 Apr 14 19:15 /var/log/messages-20180415
-rw------- 1 root root 546051 Apr 22 01:00 /var/log/messages-20180422
-rw------- 1 root root 719102 Apr 29 15:06 /var/log/messages-20180429
[root@oldboy mail]# ls -l /var/log/secure*    ->安全日志
-rw------- 1 root root  8957 Apr 30 12:41 /var/log/secure
-rw------- 1 root root  7237 Apr  9 20:31 /var/log/secure-20180409
-rw------- 1 root root 21111 Apr 15 01:32 /var/log/secure-20180415
-rw------- 1 root root 11403 Apr 22 01:06 /var/log/secure-20180422
-rw------- 1 root root 15812 Apr 29 16:11 /var/log/secure-20180429

說明:像這樣的工作是由系統自身來完成的,不需要系統管理員來設置

系統自動輪詢任務的設置配置路徑:

[root@oldboy mail]# ls -l /etc/ | grep "cron"
-rw-------.  1 root root    541 Nov 23  2013 anacrontab
drwxr-xr-x.  2 root root   4096 Mar 24 21:40 cron.d
drwxr-xr-x.  2 root root   4096 Mar 24 21:40 cron.daily
-rw-------.  1 root root      0 Nov 23  2013 cron.deny
drwxr-xr-x.  2 root root   4096 Mar 24 21:39 cron.hourly
drwxr-xr-x.  2 root root   4096 Mar 24 21:40 cron.monthly
drwxr-xr-x.  2 root root   4096 Sep 27  2011 cron.weekly
-rw-r--r--.  1 root root    457 Sep 27  2011 crontab
[root@oldboy mail]# cd /etc/logrotate.d/
[root@oldboy logrotate.d]# ls
dracut  httpd  psacct  syslog  vsftpd  yum
[root@oldboy logrotate.d]# vim 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
}
~                                                                                  
設置文件:/etc/logrotate.conf

2、用戶執行的任務工作:某個用戶或系統管理員定期要做的任務工作,例如每隔5分鍾和互聯網上時間服務器進行時間同步(安裝系統基礎優化部分內容),每天晚上0點備份網站站點數據及數據庫數據,一般這些工作需要由每個用戶自行設置才行(linux系統管理員)

[root@oldboy ~]# which ntpdate  ->查看ntpdate二進制命令所在路徑
/usr/sbin/ntpdate
[root@oldboy ~]# ps -ef | grep ntpdate
root       3276   2534  0 16:06 pts/3    00:00:00 grep --color=auto ntpdate
[root@oldboy ~]# crontab -l |tail -2     
#time sync by Wolf_Dreams 2018-05-01
*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com > /dev/null 2>&1
補充說明(阿里雲公共NTP服務器):
1)    Unix類系統:time1-7.aliyun.com
2)    Windows: time.pool.aliyun.com

1.2 定時任務crond使用說明

1.2.1 Crontab命令語法(標黃代表常用選項參數)

名稱描述:
crontab - maintain crontab files for individual users
使用格式:
crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]
選項參數說明:
-u    指定用戶名
-e    使用編輯器創建定時任務
-l    顯示目前設置的定時任務
-r    刪除定時任務
-i    刪除定時任務給出確認是否刪除的提示信息
-s    selinux security context

1.2.2 Crontab指令說明

通過crontab我們可以在固定的間隔時間執行指定的系統指令或script腳本。時間間隔的單位是分鍾,小時,日,月,周及以上的任意組合(注意:日和周不要組合)

1.2.3 Crontab配置文件默認存放目錄

文件

說明

/var/spool/cron

所有用戶crontab配置文件默認都存放在此目錄,文件名以哪個用戶創建定時任務就以哪個用戶名命名

^_^

[root@oldboy cron]# cat /var/spool/cron/root

#echo + oldboy.log file by wolf_dreams 2018-05-01

#*/1 * * * * echo "+" > /root/oldboy/oldboy.log

####tar ***/etc/services

00 */2 * * * /bin/sh /root/oldboy/backup_service.sh > /dev/null 2>&1

###tar /var/www/html file /data

#00 00 * * * /bin/sh /root/oldboy/backup_html.sh > /dev/null 2>&1

###remove /data directory *.tar.gz files

00 00 * * * /bin/sh /root/oldboy/remove_backup.sh > /dev/null 2>&1

#time sync by Wolf_Dreams 2018-05-01

*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com > /dev/null 2>&1

通過crontab查看或編輯的定時任務規則默認都會放到/var/spool/cron/目錄下,以當前用戶命令的文件

/etc/cron.deny

定時任務也可以針對普通用戶設置,可以在/etc/cron.deny設置禁止執行定時任務的用戶(即不允許使用crontab命令)

補充說明:

[root@oldboy ~]# crontab -e   ===  vi /var/spool/cron/root

[root@oldboy ~]# crontab -l    ===  cat /var/spool/cron/root

1.2.4 crontab指令選項說明含義表

參數

含義

指定示例

-l(字母)

查看crontab文件內容,可理解成list縮寫

crontab -l

-e

編輯crontab文件內容,可理解成edit的縮寫

crontab -e

-i

刪除crontab文件內容,刪除前會提示確認,很少用

crontab -ri

-r

刪除crontab文件內容,很少用

crontab -r

-u user

指定使用用戶執行定時任務

crontab -u gandalf -l

提示:crontab{-l |-e}實際上就是在操作/var/spool/cron/當前用戶這樣的文件

特別提醒(兩個特殊配置文件的對比說明):

crontab -e

/var/spool/cron/root

crontab –e編輯會檢查語法,而直接使用echo,vi編輯配置不會檢查語法

visudo

/etc/sudoers

visudo編輯會檢查語法,而直接使用echo,vi編輯配置不會檢查語法

說明:有些人可能會直接編輯/etc/crontab配置文件來設置定時任務,沒有必要使用這種配置方法,來配置定時任務,例子如下:

[root@oldboy ~]# 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

1.2.5 crontab指令使用格式

默認情況下,當用戶建立定時任務規則后,該規則記錄對應的配置文件會存在於/var/spool/cron中,其crontab配置文件對應的文件名與登錄的用戶名一致,如:root用戶的定時任務配置文件為/var/spool/cron/root。
crontab定時任務的書寫格式很簡單,用戶的定時任務規則一般分為6個段(每個段通過空格來分隔,系統的定時任務為/etc/crontab,分為7段,空格來分隔),前五段為時間的設定段,第六段為所要執行的命令或腳本任務段

用戶定時任務基本格式如下:

01 * * * * cmd
02 4 * * * cmd
22 4 * * 0 cmd
42 4 1 * * cmd
分 時 日 月 周 任務

1.2.6 crontab語法格式中時間段的含義

段    含義    取值范圍(整數)
第一段    代表分鍾    00-59
第二段    代表小時    00-23
第三段    代表日,天    01-31
第四段    代表月份    01-12
第五段    代表星期,周幾    0-7(0和7都代表星期日)
提示:時間記憶口訣:分時日月周,取值范圍:正常日期時間范圍

1.2.7 crontab語法格式中特殊符號的含義

特殊符號

含義

*

*號表示任意時間都,就是“每”的意思,舉例:如00 01 * * * cmd表示每月每周每日的凌晨1點執行cmd任務。

-

減號,表示分隔符,表示一個時間范圍段,如17-19點,每小時的00分執行任務。00 17-19 * * * cmd。就是17,18,19點整點分別執行的意思。

,

逗號,表示分隔時間段的意思。30 17,18,19 * * * cmd 表示每天17,18,19點的半點執行cmd。也可以和“-”結合使用,如: 30 3-5,17-19 * * * cmd。

/n

n代表數字,即”每隔n單位時間”,例如:每10分鍾執行一次任務可以寫 */10 * * * * cmd,其中 */10,*的范圍是0-59,也可以寫成0-59/10。

1.2.8 Crontab編輯定時任務依賴的服務

[root@oldboy ~]# chkconfig --list crond 
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@oldboy ~]# /etc/init.d/crond status
crond (pid  1412) is running...
[root@oldboy ~]# ps -ef | grep crond | grep -v grep
root       1412      1  0 10:29 ?        00:00:00 crond
[root@oldboy ~]# /etc/init.d/crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]
提示:安裝完Centos系統后開機啟動任務優化,要保留crond定時任務的服務

1.3 定時任務crond案例

示例一:

30 3,12 * * * /bin/sh /scripts/oldboy.sh
本例中,第一列為30,表示30分鍾,第二列為3,12,表示凌晨3點及中午12點,此定時任務的意思是每天凌晨3點和中午12點的半點時刻(或每天凌晨3:30和中午12:30)執行/scripts/oldboy.sh腳本

示例二:

30 */6 * * * /bin/sh /scripts/oldboy.sh
本例中,第一列為30,表示30分鍾,第二列為*/6,表示每6個小時,也相當於6,12,18,24的作用,此定時任務的意思是每隔6個小時的半點時刻執行/scripts/oldboy.sh腳本

示例三:

30 8-18/2 * * * /bin/sh /scripts/oldboy.sh
本例中,第一列為30,表示30分鍾,第二列為8-18/2,表示從早上8點到下午18點之間每隔2個小時,也相當於8,10,12,14,16,18單獨列出的作用,此定時任務的意思是早上8點到下午18點之間
每隔2個小時的半點時刻執行/scripts/oldboy.sh腳本

示例四:

30 21 * * * /etc/init.d/httpd restart
本例中表示每晚的21:30重啟apache服務

示例五:

45 4 1,10,22 * * /etc/init.d/httpd restart
本例中表示每月1、10、22日的凌晨4:45分重啟apache服務

示例六:

10 1 * * 6,0 /etc/init.d/httpd restart
本例中表示每周六、周日的凌晨1:10分重啟apache服務

示例七:

0,30 18-23 * * * /etc/init.d/httpd restart
本例中表示每天18:00到23:00之間每隔30分鍾重啟apache服務
提示:最后一次執行任務的時間是23:30

示例八:

00 */1 * * * /etc/init.d/httpd restart
本例中表示每隔一個小時整點重啟apache服務

示例九(錯誤的定時任務寫法):

* 23,00-07/1 * * * /etc/init.d/httpd restart
本例中並不表示晚上23點和早上0-7點之間每隔一個小時重啟apache服務
提示:以上的結果是不規范的,也是不對的
以上的定時任務的第一列為*,表示每分鍾都執行任務即晚上23點和早上0-7點之間每隔一小時的每分鍾都重啟apache服務

示例十:

00 11 * 4 1-3 /etc/init.d/httpd restart
本例中表示表示4月的每周一到周三的上午11點整重啟apache服務
強調:周和日不要同時使用,否則可能達不到想要的效果

1.4 書寫crond定時任務7個基本要領

1.4.1 為定時任務規則添加必要的注釋

添加注釋就知道每一個定時任務運行的是什么作業,以防以后混亂,切記這個習慣和規范

[root@oldboy ~]# crontab -l
#time sync by Wolf_Dreams 2018-05-01
*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com > /dev/null 2>&1

1.4.2 定時任務命令或程序最好寫到腳本里面執行

[root@oldboy ~]# crontab –l
###tar /var/www/html file /data
00 00 * * * /bin/sh /root/oldboy/backup_html.sh > /dev/null 2>&1

1.4.3 定時任務執行的腳本要規范路徑

[root@oldboy ~]# crontab –l
###tar /var/www/html file /data
00 00 * * * /bin/sh /root/oldboy/backup_html.sh > /dev/null 2>&1

1.4.4 執行shell腳本任務時前面加/bin/sh

執行定時任務時,如果是執行腳本,盡量在腳本前面加上/bin/sh(sh二進制命令的絕對路徑),否則有可能忘了為腳本設定執行權限,從而無法完成任務

[root@oldboy ~]# crontab –l
###tar /var/www/html file /data
00 00 * * * /bin/sh /root/oldboy/backup_html.sh > /dev/null 2>&1

1.4.5 定時任務結尾加> /dev/null 2>&1

[root@oldboy ~]# crontab –l
###tar /var/www/html file /data
00 00 * * * /bin/sh /root/oldboy/backup_html.sh > /dev/null 2>&1
1.4.5.1 有關/dev/null的說明

/dev/null為特殊的字符設備文件,表示黑洞設備或空設備

[root@oldboy ~]# ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 May  1 10:28 /dev/null
1.4.5.2 有關重定向的說明
>或1>   輸出重定向:把前面輸出的東西輸入到后邊的文件中,會刪除文件原有內容。
>>或1>>追加重定向:把前面輸出的東西追加到后邊的文件中,不會刪除文件原有內容。
<或<0   輸入重定向:輸入重定向用於改變命令的輸入,指定輸入內容,后跟文件名。
<<或<<0輸入重定向:后跟字符串,用來表示“輸入結束”,也可用ctrl+d來結束輸入。
2>       錯誤重定向:把錯誤信息輸入到后邊的文件中,會刪除文件原有內容。
2>>     錯誤追加重定向:把錯誤信息追加到后邊的文件中,不會刪除文件原有內容。
標准輸入(stdin):代碼為0,使用<或<<。
標准輸出(stdout):代碼為1,使用>或>>。正常的輸出。
標准錯誤輸出(sederr):代碼為2,使用2>或2>>。
特殊:
2>&1就是把標准錯誤重定向到標准輸出(>&)。
>/dev/null 2>&1 等價於 1>/dev/null  2>/dev/null
1.4.5.3 >/dev/null 2>&1的作用
如果定時任務規范結尾不加 >/dev/null 2>&1,很容易導致硬盤inode(索引節點)空間被占滿,會出現no space left on device提示信息,從而導致系統服務不正常(如果系統是centos 5版本默認安裝sendmail,
var/spool/clientmqueue郵件臨時隊列目錄,垃圾文件存放於此,如果系統是centos 6版本,默認不裝sendmail服務,但是默認安裝postfix服務且處於開啟狀態,垃圾文件存放目錄是:/var/spool/postfix
/maildrop) 提示:/var/spool/postfix/maildrop產生大量的垃圾小文件,是因為crond定時任務服務與郵件服務是相關聯的,執行定時任務要向定義定時任務的用戶發送郵件(郵件內容cron執行腳本中的output和warning信息),
當postfix服務處於關閉狀態的時候,cron服務發送郵件就發不出去,就會大量堆在/var/spool/postfix/maildrop目錄

Linux系統Centos6.5版本郵件服務postfix,默認是開啟狀態):

[root@oldboy ~]# ps -ef | grep postfix | grep -v grep
root       1348      1  0 10:29 ?        00:00:00 /usr/libexec/postfix/master
postfix    1358   1348  0 10:29 ?        00:00:00 qmgr -l -t fifo -u
postfix    2741   1348  0 14:17 ?        00:00:00 pickup -l -t fifo -u
[root@oldboy ~]# lsof -i :25
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
master  1348 root   12u  IPv4  11032      0t0  TCP localhost:smtp (LISTEN)
master  1348 root   13u  IPv6  11034      0t0  TCP localhost:smtp (LISTEN)
[root@oldboy maildrop]# /etc/init.d/postfix status
master (pid  1348) is running...

問題表現和檢查方法:

1、運行df –i查看inode空間使用是否滿了

[root@oldboy ~]# df -i
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda3      577088 53322 523766   10% /
tmpfs           60785     1  60784    1% /dev/shm
/dev/sda1       51200    38  51162    1% /boot
/dev/sr0            0     0      0     - /mnt

2、查看/var/spool/postfix/maildrop/目錄是否有非常多的小文件,ls命令查看出現直接卡死等情況

[root@oldboy ~]# ls -l /var/spool/postfix/maildrop/

索引節點inode空間占滿的解決辦法:

第一種辦法:重啟postfix郵件服務,來釋放inode空間

[root@oldboy maildrop]# /etc/init.d/postfix restart
Shutting down postfix:                                     [  OK  ]
Starting postfix:                                          [  OK  ]
或者采用”vi /etc/crontab” 修改crontab定時任務配置文件
將‘MAILTO=root’替換成‘MAILTO=""’,然后service crond restart即可;如果還不行在crontab –e第一行直接增加MAILTO=""

第二種辦法:刪除/var/spool/postfix/maildrop目錄下的文件

[root@oldboy ~]# cd /var/spool/postfix/maildrop
[root@oldboy maildrop]# ls | xargs rm –rf
或者使用find查找並刪除文件
[root@oldboy ~]# find /var/spool/postfix/maildrop/ -type f | xargs rm -rf

1.4.6 在指定用戶下執行相關定時任務

這里要特別注意不同用戶的環境變量問題,如果是調用了系統環境變量/etc/profile,最好在程序腳本中將用到的環境變量重新export下。

1.4.7 生產任務程序不要隨意打印輸出信息

在調試好腳本程序后,應盡量把DEBUG及命令輸出的內容信息屏蔽掉,如果確實需要輸出日志,可定向到日志文件里,避免產生系統垃圾。

1.4.8 配置定時任務規范操作過程

    首先要在命令行操作成功,然后復制成功的命令到腳本里,在各個細小環境減少出錯的機會。
    然后測試腳本,測試成功后,復制腳本的規范路徑到定時任務配置里,不要手敲。
    先在測試環境下測試,然后正式環境規范部署。

1.5 生產場景如何調試crond定時任務

規范的公司開發和運維人員操作流程:個人的開發配置環境-->辦公室的測試環境-->idc機房的測試環境-->idc機房的正式環境(分組,灰度發布)

1.5.1 增加執行頻率調試任務

在調試時,把任務執行頻率調快,比如每分鍾或者系統時間之后5分鍾執行,看結果執行是否可以正確執行,如果正常,那就沒問題了,再改成需要的任務的執行時間
注意:有些任務時不允許頻繁執行的,例如:定時往數據庫里插入數據,這樣的任務要在測試機上測試好,然后正式線上出問題的機會就少了。

1.5.2 調整系統時間調試任務(不能直接用於生產環境)

用正確的執行任務的時間,設置完成后,可以修改下系統當前時間,改成任務執行時間的前幾分鍾來測試(或者重啟定時任務服務)

1.5.3 通過腳本日志輸出調試定時任務

在腳本中加入日志輸出,然后把輸出打到指定的日志中,然后觀察日志內容的結果,看是否正確執行,如下面例子中標綠部分/tmp/crontab.log(腳本日志)
[root@oldboy ~]# crontab -l
#time sync by Wolf_Dreams 2018-05-01
*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com > /tmp/crontab.log

1.5.4 注意一些任務命令帶來的問題

注意: */1 * * * * echo "+" > /root/oldboy/oldboy.log >/dev/null 2>&1這里隱藏的無法正確執行的任務配置,原因是前面多了>,或者去掉結尾的 >/dev/null 2>&1
(定時任務中重定向輸出只能使用一次,不能使用兩次或多次) 正確寫法: [root@oldboy ~]# crontab -l #echo + oldboy.log file by wolf_dreams 2018-05-01 */1 * * * * echo "+" > /root/oldboy/oldboy.log 錯誤寫法: [root@oldboy ~]# crontab -l #echo + oldboy.log file by wolf_dreams 2018-05-01 */1 * * * * echo "+" > /root/oldboy/oldboy.log > /dev/null 2>&1

1.5.5 注意環境變量導致的定時任務故障

在調試java程序任務的時候,注意環境變量,把環境變量的定義加到腳本里
例子:
[root@oldboy oldboy]# cat /root/oldboy/task.sh 
#!/bin/bash
JAVA_HOME="/opt/jdk1.6.0_18"
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/opt/nginx-0.7.61/sbin:/opt/jdk1.6.0_18/bin:/opt/resin-3.0.25/bin:$PATH
export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC CLASSPATH
/usr/local/bin/xxresin_stop.sh
/usr/local/bin/xxresin_start.sh

1.5.6 通過定時任務日志調試定時任務

[root@oldboy ~]# tail -f /var/log/cron
May  1 21:45:40 oldboy crontab[3835]: (root) END EDIT (root)
May  1 21:46:01 oldboy crond[3505]: (root) RELOAD (/var/spool/cron/root)
May  1 21:46:01 oldboy CROND[3838]: (root) CMD (echo "+" > /root/oldboy/oldboy.log)
May  1 21:47:01 oldboy CROND[3840]: (root) CMD (echo "+" > /root/oldboy/oldboy.log)
May  1 21:47:26 oldboy crontab[3841]: (root) BEGIN EDIT (root)
May  1 21:48:01 oldboy CROND[3844]: (root) CMD (echo "+" > /root/oldboy/oldboy.log)
May  1 21:49:01 oldboy CROND[3846]: (root) CMD (echo "+" > /root/oldboy/oldboy.log)
May  1 21:50:01 oldboy CROND[3850]: (root) CMD (/usr/sbin/ntpdate time1.aliyun.com > /dev/null 2>&1)
May  1 21:50:01 oldboy CROND[3852]: (root) CMD (echo "+" > /root/oldboy/oldboy.log)
May  1 21:50:01 oldboy CROND[3853]: (root) CMD (/usr/lib64/sa/sa1 1 1)

1.5.7 sh -x 調試腳本

[root@oldboy oldboy]# sh -x 
sh-4.1#  
sh-4.1# exit
[root@oldboy oldboy]#

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM