1

forever list出力を文字列に保存し、何らかの操作を行って XML ファイルに保存する bash スクリプトがあります。同じファイルで、シェル コマンドも呼び出していますuptime。ファイルは に格納されてい/var/www/html/ytca/rss.shます。そのコマンドを実行すると、ファイルは正しく更新されます。私はcronジョブを実行しています:

*/2 * * * * /var/www/html/ytca/rss.sh

そして、crontab -eルートの下でコマンドを使用して作成され、コマンドでは何も表示されませんが、forever listコマンドで表示されuptimeます。

ここにあなたが必要とするかもしれないすべてがあります:

rss.sh

#!/bin/bash
DATE=`date`
RESULT=`/usr/local/bin/forever list | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"`
OTHER=$(/usr/local/bin/forever list)
upt=`uptime`
String='<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Server Details</title>
<link>http://www.google.com/</link>
<description>Server details for Chris</description>
<item>
<title> Updated: '$DATE'</title>
<link>www.google.com</link>
<guid>abc123</guid>
<pubDate>'$DATE'</pubDate>
<description><![CDATA[Service uptime: '$RESULT';<br/>DbServer uptime: '$OTHER';<br/>Server uptime: '${upt:0:23}']]></description>
</item>
</channel>
</rss>'
echo $String > '/var/www/html/ytca/site/update.xml'

永遠に:

/usr/local/bin/forever

不要ながらくたを切り取る:

コマンドラインから実行した場合の出力:

<?xml version="1.0" encoding="UTF-8"?> ...<![CDATA[Service uptime: info: Forever processes running data: uid command... 0:0:23:31.723 ;<br/>DbServer uptime: [32minfo[39m: Forever processes running [9...3:31.932[39m ;<br/>Server uptime: 00:02:57 up 4 days, 48]]></description> </item> </channel> </rss>

cron から実行した場合の出力:

<?xml version="1.0" encoding="UTF-8"?>...<![CDATA[Service uptime: ;<br/>DbServer uptime: ;<br/>Server uptime: 00:00:01 up 4 days, 45]]></description> </item> </channel> </rss>

私はこれに何時間も取り組んできましたが、意味がないようです。crontab で永久リストをエコーアウトしようとしましたが、空白になります。何か案は?

4

3 に答える 3

0

ファイルを実行可能ファイルにする

chmod a+x /var/www/html/ytca/rss.sh
于 2013-07-10T10:58:30.330 に答える