10秒ごとにコマンドを実行する方法(cronなし)?


36

実行するcronと、この障害が発生します

cron:/var/run/crond.pidを開くことも作成することもできません:許可が拒否されました

だから、それなしでそれを行う方法はcron

PS svnのファイルが変更されたかどうかを確認したいのですが、そのための特別なスクリプトがあります。


許可がない場合は、でcronを実行してみてくださいsudo
匿名

4
cronが10秒ごとに何かをするわけではないことに注意してください。cronが取得する最も細かいのは1分に1回です。
セシウム

cronjobsを作成する場合はcrontab -e、エディターを起動するために実行する必要があります。現在のcronを一覧表示するには、次を実行しますcrontab -l
Lekensteyn

@匿名私はルートパスワードを知らないので、sudoは私を助けません。
UAdapter

回答:


59

個人cron設定にアクセスするには、コマンドを使用する必要がありますcrontab -e(cronテーブルを編集するため)。

代替手段は次のwatchコマンドです。

watch -n10 command args

最後に、ファイルシステムイベントをより効果的に監視するにinotifywaitは、inotify-toolsパッケージからを使用できます。


1
おそらく、コマンドを二重引用符で囲むことをお勧めします。そうしないと、予期しない結果になる可能性があります。watch -n<timeout> "command(s) arg(s)"のようなwatch -n2 "ps ux | grep ss5"
アキレス

watchパイプと引用符を使用して長くて複雑なコマンドを受け入れるのは難しいと感じました。以下のwhileループは機能しましたが、もちろん暴走したPIDを避けるために、最初必ずスリープする必要があります。
rjurney

@rjurney:コマンド全体を引用符で囲むのに十分である必要があります。シングルまたはダブル:watch -n10 "ls -l | grep $foo"
enzotib

@enzotibコマンド内に引用符がある場合に問題が発生します。引用符内の引用符内の引用符(神は私を助けます)はbashでは不可能なアプローチになります。理論的には可能であるはずですが、あきらめて別のルートに進むことなく、bashでネストされた引用符を達成することはめったにありません。
rjurney

32

sleepwhileループを持つシェルスクリプトを作成できます。

#!/bin/sh
while [ true ]
do
    sh special_svn_script.sh
    sleep 10
done

5
while true四角いブレットは必要ありません。それ以外の場合、「true」は文字列として解釈され、すべての文字列は「true」と同等です。
enzotib

1
@enzotibので、周りに書いてもいいかもしれません
エドゥアルドフロリネスク

これは機能しますが、睡眠段階に到達しない原因が発生する可能性があるため、常に最初に眠る必要あります。
rjurney

4

gnome-schedule(ボタンをクリックInstall now!してSoftware Centerを使用)
は、vixie-cron、dcron、atの能力を活用してcrontabファイルを管理し、コンピューター上のタスクを簡単にスケジュールできるグラフィカルユーザーインターフェイスです。定期的な(定期的な)タスクと、将来一度だけ発生するタスクをサポートします。pygtkを使用してPythonで書かれています。

素晴らしい機能

  • タスクのカスタムタイトルとアイコンをサポートしているため、より簡単に追跡できます
  • テンプレートがサポートしているため、同じタスクを何度も作成する必要がありません。これらはgconfに保存されており、たとえばLinuxディストリビューションで簡単に出荷できます。
  • rootとして実行する場合、任意のユーザーのcrontabおよび「at」タスクを編集できます。
  • 「0 * * * *」ではなく「Every hour」のような人間が読み取れる文字列
  • crontabエキスパート向けの詳細モード
  • ドロップダウンメニューからタスクを管理できる「パネルアプレット」を提供します
  • 次のような定義済みの一般的な表現:毎分、毎週、明日、来週カレンダーを使用すると、タスクを実行する日を選択できます
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.