首頁 > 運維 > linux運維 > 你知道linux下crontab中的%有啥特殊意義嗎?

你知道linux下crontab中的%有啥特殊意義嗎?

藏色散人
發布: 2021-09-06 17:26:01
轉載
2151 人瀏覽過

以下由linux系統教學欄位來介紹linux下crontab中%的使用,及其特殊意義,希望對需要的朋友有幫助!

你知道linux下crontab中的%有啥特殊意義嗎?

linux下crontab中%的使用

crontab中下面的腳本不能

 0 1 * * *   (cd /u01/prod; rsync -avz app 192.168.0.192:/u01/prod/) &>/home/applprod/backuplog/rsync_`date +%Y%m%d_%H%M%S`.log
登入後複製

執行的時候,/var/log/messages日誌中顯示:

Sep 22 22:50:01 ebsapp CROND[13389]: (applprod) CMD ((cd /u01/prod; rsync -avz app 192.168.0.192:/u01/prod/) &>/home/applprod/backuplog/rsync_`date +)
登入後複製

好像是指令被截斷的樣子。

於是我把要執行的指令都封裝到一個腳本中,放到crontab中執行。

但是稍後查看crontab的manpage時發現,%在crontab中有特殊意義:

The  "sixth"  field (the rest of the line) specifies the command to be run.  The entire command portion of the line, up to a new-
       line or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the cronfile.   Percent-signs
       (%)  in  the  command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first %
       will be sent to the command as standard input.
登入後複製

到這裡問題已經清楚了,並不是crontab指令被截斷,而是被理解成另外的意義了,解決的方法也有了,就是將%進行轉義,修改之後的腳本變成了:

03 23 * * * (cd /u01/prod; rsync -avz app 192.168.0.192:/u01/prod/) &>/home/applprod/backuplog/rsync_`date +\%Y\%m\%d_\%H\%M\%S`.log
登入後複製

以上是你知道linux下crontab中的%有啥特殊意義嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板