Ed *_*yer 0 shell scripting perl cron
那么,好吧,作业在cron中运行:它获取压缩文件并处理它们.如果文件已损坏,则会删除它们.有时它们在远程服务器上很糟糕,在这种情况下,每次都会下载和删除它们.
我的cron广泛记录到STDOUT(定向到.crontab中的logfile),使用STDERR仅用于导致脚本停止的事情:我喜欢在发生坏事时从cron收到电子邮件; 只是损坏的文件不应该在此列表中.
我需要'gunzip'的输出告诉我文件是否已损坏.但是,我厌倦了每次遇到错误的文件时都会收到来自cron的电子邮件.如何调用'gunzip'以便错误不会触发来自cron的电子邮件,同时仍然让调用'gunzip'的脚本知道它失败了?
这可能是一个非常简单的,但我对这个cron的东西很新.
重要PS:'gunzip'是从Perl脚本调用的,使用
$gunzip_result=system("gunzip $gzfile");
if($gunzip_result){
print,"$gzfile is bad: deleting...\n";
unlink $gzfile;
};
Run Code Online (Sandbox Code Playgroud)
您可能想考虑使用IO :: Uncompress :: Gunzip,它具有更好的错误控制和处理能力.以下是可能有用的代码段:
use IO::Uncompress::Gunzip qw(gunzip $GunzipError);
eval (
gunzip $infh => $outfh or die $GunzipError
);
if $@ <do something with $GunzipError>
Run Code Online (Sandbox Code Playgroud)
$ GunzipError叙述了出了什么问题
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |