2016-01-29 90 views
0

工作正常,我在附加的* .txt文件中得到具有所需結果的電子郵件。然而,當cron運行這個相同的命令時,我收到一個EOF錯誤。當我通過命令行運行命令時,Linux crontab查找並通過電子郵件收到EOF結果

任何人都可以指出什麼可能會導致此錯誤?

我在CentOS運行的cPanel與Cloudlinux 6.6

下面是我從cron收到說它出錯的電子郵件;

Subject: Cron <[email protected]> find /home/accountname/public_html -type f -mtime -7 2> `date +' 

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``' 
/bin/sh: -c: line 1: syntax error: unexpected end of file 

這是我的命令;

01 * * * * find /home/accountname/public_html -type f -mtime -7 2> `date +'%m-%d-%Y'`-accountname-filescan.txt | uuencode `date +'%m-%d-%Y'`-accountname-filescan.txt | mail -s "`date +'%m-%d-%Y'`-accountname File Scan Report" root 

我很感激任何有關我做錯的建設性意見。

我跟着這個線程來開發我的命令; Linux cron job to email output from a command

+0

'cron'運行作爲不同的用戶,所以'/家庭/帳戶名/'...不會被人指指點點,你認爲它是。另外,如果使用'mailx'作爲'mail',它包含'-a'選項以允許您將文件而不是'uuencode'和管道附加到消息。檢查你是否有可用的選項(例如'mail -s「...」-a $(date +'%m-%d-%Y') - accountname-filescan.txt') –

+0

我認爲, ,你最好把它放在一個文件中,比如說'/ usr/local/etc/file-scan-report',然後只需要'01 * * * */usr/local/etc/file-scan-報告'在crontab中。 –

+0

@ DavidC.Rankin - 我嘗試使用你提到的'mail -a'選項,並且至少說出了一些奇怪的結果 - 我確實發現我不需要'uuencode'。感謝您的建議。 ;) – uhhm

回答

1

必須逃脫%:

man (5) crontab: 

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. 
+0

非常感謝! DOH! ;) – uhhm