加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux系统下的crontab中%表示什么,怎么运用

发布时间:2023-08-23 10:35:11 所属栏目:Linux 来源:网络
导读:   这篇文章主要介绍“linux系统下的crontab中%表示什么,怎么使用”,有一些人在linux系统下的crontab中%表示什么,怎么使用的问题上存在疑惑,接下来小编就给大家来介绍一下相
  这篇文章主要介绍“linux系统下的crontab中%表示什么,怎么使用”,有一些人在linux系统下的crontab中%表示什么,怎么使用的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。
 
  下面由linux系统教程栏目给大家介绍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
 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章