私はLinuxにとって比較的初心者です。at
を使用せずに後で作業を開始するようにスケジュールできるように使用方法を学びたいsleep
。前の質問助けを求める。
私の質問は私が作った次の例のbashスクリプトでなぜ「走る」私が知っている限り、stdout(bashコンソールなど)で印刷することはできません。
#!/bin/bash
echo "Started"
at now + 1 minutes <<EOF
echo "Running"
EOF
echo "Finished"
私が見る唯一の出力は、例えば次のとおりです。
Started warning: commands will be executed using /bin/sh job 3 at Fri Jul 12 17:31:00 2013 Finished
私の質問に対する答えは警告で見つけることができますか?それでは、/bin/sh
標準出力とどう違いますか?
ベストアンサー1
at
これは、ログインしたユーザーセッションのコンテキストではコマンドが実行されないためです。アイデアは、いつでもコマンドを実行するようにスケジュールし、ログアウトすると、システムが指定された時間にコマンドの実行を処理することです。
マニュアルページには次のように具体的at(1)
に明示されています(私の強調)。
ユーザーにメールが送信されます。コマンドの標準エラーと標準出力(使用可能な場合)のメールは、/usr/sbin/sendmailコマンドを使用して送信されます。
したがって、ローカルメールプールを確認し、失敗した場合はローカルシステムメールログを確認する必要があります。 /var/spool/mail/$USERは始めるのに最適な場所かもしれません。
at
さらに、「開始」と「完了」は外部スクリプトから派生し、それ自体はまったく関係がありません。取り出したりat
電話したりすると、本質的に同じ結果が得られます。