タグ付けされた質問 「cron」

Cronは、ユーザーが定期的にコマンドを実行できるジョブスケジューラです。

1
cronスケジューリングは実際にどのように実装され、スクリプトが時間通りに実行されるようにしますか?
cronジョブについて質問したい。OK、スクリプトをcrontabに配置し、cronデーモンがスクリプトを実行します。 これを理解すると、毎分、cronは各ユーザーのcrontabをチェックして、構成されたスクリプトを実行します。しかし、これは実際にどのように行われますか?子プロセスなどをフォークしますか? タイミングが失われるため、タスクを順次実行することはできません(たとえば、長時間実行されているスクリプトの終了を待機しているため)。これは実際にどのように実装されていますか? 助けるために、私は低レベルのコードを探していません。(おそらくアルゴリズムの)高レベルの説明、またはほとんどのディストリビューションでこれをどのように実装するかで十分です。

3
テールコマンドをエコーすると、予期しない出力が生成されますか?
このコマンドを単独で実行すると、期待される結果(crontabの最後の行)が生成されます。 tail -n 1 /etc/crontab ただし、echoコマンドの一部として実行して結果をファイルに送信すると、作業ディレクトリ内のすべてのファイルの概要と予想される結果が追加されます。 sudo bash -c 'echo $(tail -n 1 /etc/crontab) > /path/to/file' なぜこのコマンドは余分なデータを生成したのですか?
8 bash  sudo  cron  echo  tail 

3
特定の日ではなく他のすべての日に実行するCron
私は毎日午後10時にbashスクリプトを実行するようにcronを設定しています。毎月1日に実行する別のcronセットアップがあります。両方のcronはbashスクリプトを起動します。bashスクリプトの唯一の違いは、それらが基礎となるJavaプログラムに渡す引数です(Javaプログラムのコマンドライン起動をエミュレートします)。 問題は、どちらかが同じ日に実行されないように、月の1日目に毎日cronを無効にする必要があることです。これは自動的に実行できますか? 別のbashスクリプトを作成して、最初の前にcronを編集し、その後に再度設定することができると思いますが、これは...不明瞭なようです。

1
削除されたときにcronジョブがまだ実行中
私が継承したサーバーcronでは、Debianサーバーの1つで1時間ごとにジョブが実行されています。存在しない電子メールに電子メールを送信しますが、自分をにroot電子メールとしてリストしたため、アカウントに返送され/etc/aliasesます。メールに記載されているcronジョブが削除されました/etc/cron.hourly(以前はでしたntupdate)。crontabデーモンをリロードしましたが、ファイルの起動に失敗し、電子メールアドレスが存在しないという1時間ごとのレポートが引き続き表示されます。 電子メールで送信される出力: /etc/cron.hourly/ntpdate: run-parts: failed to exec /etc/cron.hourly/ntpdate: Exec format error run-parts: /etc/cron.hourly/ntpdate exited with return code 1 現在、には.placeholder隠しファイルがあり/etc/cron.hourlyます。私も実行しcrontab -lました。リストされている3つのジョブのみがリストされていると予想され、このメールが届き続ける約10分後に実行されます。だから私はそれがそれらの一つではないことを知っています。これらのメールの受信を停止するには、次にどこを見ればよいですか? 編集#1 # ls -l /var/spool/cron total 4 drwx-wx--T 2 root crontab 4096 Jan 25 2012 crontabs 編集#2 # ls -l /var/spool/cron/crontabs/ total 4 -rw------- 1 root crontab 311 Jan 25 …

3
実行されているcronデーモンのバージョンを取得する方法
背景:私はCentOSに取り組んでいます 細部 # cat /proc/version Linux version 2.6.18-308.4.1.el5PAE (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)) #1 SMP Tue Apr 17 17:47:38 EDT 2012 質問:どのバージョンのcronデーモンがマシンにインストールされ、実行されているかを知るには
8 cron 



2
cronジョブが期待どおりに機能しない
3つのcrontabジョブをセットアップして、単純なルビースクリプトを1分ごと、5分ごと、1時間ごとに定期的に実行します。彼らは実行しますが、何もしません。マシン(root)には1人のユーザーしかいませんし、コマンドを実行してcrontabを設定しましたcrontab -e。crontab -l現在のcrontabジョブをリストします。 5 * * * * ruby /root/www/server-monitoring/current/tasks/cpu_check.rb 0 * * * * ruby /root/www/server-monitoring/current/tasks/free_disk_space.rb 1 * * * * ruby /root/www/server-monitoring/current/tasks/free_ram_check.rb これらのルビーファイルを手動で実行する場合、完全に正常に動作するのに対し、適切な間隔では実行されず、また何も実行されないことがわかります。rubyプログラムが100%正常に動作すること、テストなどに合格することを確認できます。以下にcrontabログを示します。 Dec 6 15:45:01 monitoring-jedrzej CRON[28281]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1) Dec 6 15:55:01 monitoring-jedrzej CRON[28478]: (root) CMD (command -v …
1 debian  cron 

1
デスクトップおよび組み込み環境でのRTC管理
外部RTCモジュール(DS1307など)を備えた組み込み環境(現在の環境:Debian Stretchを搭載したRaspberry Pi)で作業する場合、システムとRTCクロックの両方を手動で同期する必要があります。 これは定期的に呼び出すことで実現できますhwclock -w-たとえば、cronジョブに入れます。 デスクトップシステムがこの状況をどのように処理するのか興味があります。Debianデスクトップマシンでcronジョブを実行していますが、RTCに関連するものはないようです(他のタスクでは「隠されている」可能性があります)。 では、RTCをシステムクロックとどのように同期させるのでしょうか。
debian  cron  date  clock 

1
CronからBashスクリプト、Bashスクリプト、Expectスクリプト
一連のExpectスクリプトを実行したい。実行のチェーンは次のようになります。Cronジョブはbashスクリプトを開始し、このラッパーは〜11個のbashスクリプトを開始Parallelします-それぞれがスクリプトを呼び出しExpectます。 そのExpect部分まではすべて順調です。2番目のBashスクリプトにParallel部分があり、各期待スクリプトのホスト名をファイルに出力しています。実際、doはグループで表示されますが、Expectスクリプトはすぐに終了します。 Cronジョブの性質上、環境変数をジョブに渡す必要があると聞きました。私はこれまでこれを試しました: 48 9 * * * rm /home/admin/.flag && /home/admin/.profile; /home/admin/nodeTest.sh nodeTestの重要なコードは次のとおりです。 for i in {1..10}; do for chunk in `ls /home/admin/assets/sagLogs/x*`; do cat $chunk | parallel -j 11 -I% --max-args 1 /home/abdmin/oneNode.sh "%" clear done done チャンクの長さは11ホスト名です。それらはoneNodeを介してExpectスクリプトを開始するために並列プログラムに入ります-oneNodeはホスト名をIPに変換し、実行するスクリプトを決定します。 これはコマンドラインからうまく機能します。悲しみを与えてくれるだけのCronの仕事。interacttclコマンドが問題を引き起こすことを読みましたが、スクリプトでは使用していません。これは並行して実行される行です: timeout 80 sudo expect /home/admin/assets/activeTest $sag $ip & 更新:前の行を次のように変更しました: …
bash  cron  expect 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.