我們有許多通過相當大的網絡收集各種統計數據的cron作業。這些cron工作中的大部分都沒有得到很好的監控。我想寫一個Perl腳本,我們可以管這些作業的輸出入,這樣的事情:Perl,確定STDIN來自哪裏
5 * * * * collectstats.pl 2>&1 1>/dev/null | scriptwatcher.pl
的想法是,從collectstats.pl標準輸出被丟棄和標準錯誤管道送入scriptwatcher.pl。然後,第二個腳本可以在出現錯誤時採取適當的措施,最有可能給我發電子郵件。通過快速測試,除了在scriptwatcher中,我需要知道發送錯誤的腳本的名稱。只要那一小塊信息,我想要做的一切就成爲可能。
此外,是否有可能從同一時間管道從collectstats到另一個腳本的標準輸出?即一個腳本2管道?
乾杯
使用該行:'5 * * * * collectstats.pl 2>&1 1>/dev/null | scriptwatcher.pl collectstats.pl'。也就是說,告訴腳本觀察者它正在觀看哪個腳本。查看['pee'](http://stackoverflow.com/questions/4656927/is-it-possible-to-distribute-stdin-over-parallel-processes/4658717#4658717)命令,平行於'tee'但與進程(因此'p'),而不是文件。 –
@JonathanLeffler如果可能,我想避免重複鍵入collectstats.pl。如果沒有別的可能,那麼這是我需要做的,但避免它是可取的。 – MikeKulls
哈哈,嘗試在谷歌中輸入「pee命令」,而不是我所期望的! – MikeKulls