私は特定の時間にサーバーを停止して起動するために "at"コマンドを試しましたが、何らかの理由でスクリプトがすぐに実行されます。これにはさまざまな方法を試しましたが、常に実行されます。私は何が間違っていましたか?私はこれを試みます:
./stop | at 03:52 092421
このように:
./start | at 04:00 tommorow
答え1
私は何が間違っていましたか?
./stop
(または)に電話しています./start
。at
誰がすぐにスクリプトを実行するのではありません。あなたです。
./stop | at …
同時にあなたによって./stop
実行されますat
。これが|
シェルで Pipe() が動作する方法です。これ出力から…./stop
あなたat
が望むものではありませんか?
at
後で実行するコマンドを標準入力の文字列として期待します。./stop
渡したい出力の代わりにひももちろん./stop
。文字列をパイプする基本的な方法は次のとおりですecho
。
echo './stop' | at …
これにより、後者のツールecho
はat
以前のツールの出力を使用します。出力は実際に./stop
あなたが望むものです。