crontab 脚本修改失败的问题

crontab 脚本修改失败的问题

我有一个 crontab,它调用 /usr/bin 中的脚本 syslogtar.sh。它在我的路径中,并且已经运行了一年多。脚本进入每个防火墙日志目录,运行 find 命令,将输出传送到 tar 以打包文件并删除打包的 gz 文件。我们添加了一些新防火墙,因此我添加了新行来处理这些防火墙上的打包日志,但它不起作用。我尝试重新加载 crond 并重新启动 serevr,认为需要在 cron“内存”中更新脚本,但仍然没有成功。当我检查各个行时,我选择其中一行并运行它,它会找到文件并对其进行打包,就像这样:

root@stgapsclsplc01:/usr/bin#  find /syslog/firewalls/isp/10.10.10.78/*.gz -mtime +1 | xargs  tar --remove-files -cvPf /syslog/firewalls/isp/10.10.10.78/10.10.10.78_$(date +%Y-%m-%d).tar

/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546838222.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546841822.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546845421.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546849022.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546852622.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546856222.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546859822.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546863421.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546867021.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546870621.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546874222.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546877821.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546881421.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546885021.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546888621.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546892221.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546895821.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546899421.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546903021.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546906621.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546910221.gz
/syslog/firewalls/isp/10.10.10.78/10.10.10.78.log-20190107-1546913821.gz

我有一个新的防火墙,因此我添加了:

find /syslog/firewalls/isp/10.10.10.91/*.gz -mtime +1 | xargs  tar --remove-files -cvPf /syslog/sog-firewalls/psc/10.10.10.91/10.10.10.91_$(date +%Y-%m-%d).tar

当我尝试查找部分时:

find /syslog/firewalls/isp/10.10.10.91/*.gz -mtime +1

它返回一些文件

/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190102-1546485422.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190102-1546489023.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546492621.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546496223.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546499822.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546503422.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546507021.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546510623.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546514224.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546517821.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546521421.gz
/syslog/firewalls/isp/10.10.10.91/10.10.10.91.log-20190103-1546525021.gz
..........Abreiviated

但是当我运行整个命令时我得到:

root@stgapsclsplc01:/usr/bin# find /syslog/firewalls/isp/10.10.10.91/*.gz -mtime +1 | xargs  tar --remove-files -cvPf /syslog/sog-firewalls/psc/10.10.10.91/10.10.10.91_$(date +%Y-%m-%d).tar
tar: /syslog/sog-firewalls/psc/10.10.10.91/10.10.10.91_2019-01-09.tar: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

我已经检查了权限并检查了语法很多次,但我没有发现任何错误。该命令与工作命令完全相同,只是在不同的目录和文件名中工作。我已经多次验证了路径。有人知道为什么一个命令有效而新的命令无效吗?

相关内容