
どうやって繰り返す時間間隔ごとにコマンドを実行することで、チェック中 または監視 ディレクトリ?
スクリプトは必要ありません。ターミナルで実行される簡単なコマンドだけが必要です。
答え1
コマンドを使うことができます watch
。時計指定されたコマンドを定期的に実行するために使用されます。
ターミナルを開き、次のように入力します:
watch -n x <your command>
変化バツ希望する秒数になります。
watch
コマンドとそのオプションの使用方法の詳細については、こちらを実行するman watch
か、こちらにアクセスしてください。リンク。
例えば :以下に、すべての60年代同じターミナルで、デスクトップ ディレクトリの内容を確認して、変更があったかどうかを確認します。
watch -n 60 ls -l ~/Desktop
答え2
このコマンドはターミナルでも使用できます。nuxの回答:
while true; do <your_command>; sleep <interval_in_seconds>; done
例:
while true; do ls; sleep 2; done
ls
このコマンドは、2 秒間隔で出力を印刷します。
プロセスを停止するにはCtrl+ を使用します。C
の欠点はいくつかありますwatch
。
- エイリアスコマンドは使用できません。
- コマンドの出力が非常に長い場合、スクロールは正しく機能しません。
- 設定に多少の問題がある最大時間間隔ある一定の値を超えると。
watch
-c
は、またはオプションを使用してエスケープ文字を渡す ANSI カラー シーケンスを解釈します--color
。たとえば、 の出力はpygmentize
機能しますが、 では失敗しますls --color=auto
。
上記の状況では、これがより良い選択肢であると思われるかもしれません。
答え3
Ubuntu では完璧に動作しますが
watch
、純粋な「Unix-fu」を望むなら、これを避けた方が良いかもしれません。たとえば、FreeBSD では、watch
「別の tty ラインをスヌープする」コマンドがあります。while true; do command; sleep SECONDS; done
また、注意点もあります: Ctrl+を使用してコマンドを強制終了することが難しくなる可能性がありますC。次の方法をお勧めします:while sleep SECONDS; do command; done
SECONDS
短くなるだけでなく、中断も簡単になります。注意点は、最初にスリープしてからコマンドを実行するため、コマンドが最初に実行されるまでしばらく待つ必要があることです。
答え4
crontabを使うことができます。コマンドを実行しcrontab -e
て好みのテキストエディタで開き、次の行を追加します。
*/10 * * * * /path-to-your-command
これにより、10分ごとにコマンドが実行されます
* */4 * * * /path-to-your-command
これにより、コマンドが4時間ごとに実行されます
もう一つの解決策
$ ..some command...; for i in $(seq X); do $cmd; sleep Y; done
バツ繰り返す回数。
はい繰り返すのを待つ時間。
例 :
$ echo; for i in $(seq 5); do $cmd "This is echo number: $i"; sleep 1;done