次の単純なbashスクリプトがあります。
#!/bin/sh
TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"`
echo "$TIMESTAMP restart" /etc/init.d/nginx restart > /usr/local/nginx/logs/restart.log 2>&1
私のrestart.logに次の出力が生成されます。
2020-04-17 18:22:30 Restarting nginx (via systemctl): nginx.service.
ただし、次にスクリプトを実行すると、出力行が削除され、代わりに最後の再起動の行だけが残ります。常に1つのスレッドしかありません。これは複数行ではなく「1行」スクリプトのようです。
今問題は、次のように前の項目をすべて保持する方法です。
2020-04-17 18:22:30 Restarting nginx (via systemctl): nginx.service.
2020-04-18 19:12:30 Restarting nginx (via systemctl): nginx.service.
2020-04-19 20:02:30 Restarting nginx (via systemctl): nginx.service.
私はこれが簡単でなければならないことを知っていますが、それを理解することはできません。すべてのコメント/コメント/提案は大いに感謝します。よろしくお願いします!
答え1
こんにちは、o/pを扱っています:
次の内容を添付してください。
echo "$TIMESTAMP restart" /etc/init.d/nginx restart >> /usr/local/nginx/logs/restart.log 2>&1