• 締切済み

クーロンで1日おきに起動させるには??

毎度お世話になります。(汗 またまたの引き続き質問なんですが。。 solarisでログのバックアップシェルを運用しています。不要なログを削除するシェルを現在作成中なのですが、クーロンで一日おきにシェルを起動させようと思ったら、どういう設定をしたらいいのでしょうか? 30 17 * * * sh abc.sh とすると毎日17:30に起動ですが、これを一日おきに起動するにはどうしたらいいでしょうか??

みんなの回答

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.4

亀レスになりますが 30 17 0-30/2 * * sh abc.sh とか使えません? 私の linux box では、「拡張機能」として存在するようです。 man 5 crontab とかして、見てみると良いかも。

  • GINO
  • ベストアンサー率36% (18/50)
回答No.3

ええと、1日置きというのは#1さんと#2さんの言う通り、abc.shで処理するのが適当と思います。 そこで、完全な1日置き、というわけではありませんがcronのみで行うのであれば、cronの起動には曜日指定が出来たはずなので、例えば土曜日か日曜日を外して火、木、土曜日と実行するのが簡単だと思います。 #私はそうして上司を説得しました。どうせ土日は使用頻度が低いからOKでしょ?って言ったら納得して頂きました。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

abc.shの中でtouchコマンドでフラグ用のファイルを作ればよいです。 フラグの立ってない日は実行したあと、フラグを立てる。 フラグの立ってる日は、フラグを削除して終わり。 こんな感じです。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> とすると毎日17:30に起動ですが、これを一日おきに起動するにはどうしたらいいでしょうか?? 普通の cron には、そういう機能は無いので、起動される abc.sh の方で、二日に一回処理するような 処理を書くしかありません。

関連するQ&A

  • クーロンでシェル実行、JAVAコマンドが動かない・・

    クーロンにて、シェルを自動起動し、JAVAコマンドを動かそうとしています。 cron → abc.sh実行 └def.sh実行 └JAVAコマンド実行 という位置付けです。 まず、 0 3 * * * sh /usr/src/sh/abc.sh という設定にてクーロンを自動実行しようとしました。abc.shの内容はこうです。 #!bin/sh /bin/sh /usr/src/sh/def.sh> /log/def.txt def.txtというテキストは生成されるのですが、def.shが実行されていません。。 def.shの中身はjavaコマンドで、 java aaa.bbb.ccc.ddd/conf/repair.properties というものです。 また、念のため、クーロンに直接 0 3 * * * /bin/sh /usr/src/sh/def.sh ともやってみましたが、結果は同じでした。 どうすればdef.shがちゃんと実行されるでしょうか? そもそもjavaコマンドをクーロンですることはできないのでしょうか?

  • クーロンでJAVA実行するshellを実行。クラスパスを記述したがエラー発生

    OSはUNIXです。 クーロンでshellを起動し、そのshellの中でJAVAコマンドの実行を行いたいのですが、 クーロンで実行する際は、どうもクラスパスを定義しないといけないという話を聞き、 shellの中で、以下のようにクラスパスの部分を追記しました。 #!/bin/sh ##以下2行追記## CLASSPATH=/opt/DynamicWORKs/abc:/opt/DynamicWORKs/services/abc/def export CLASSPATH ##追記はここまで## java aaa.bbb.ccc.ddd/conf/abc.properties クラスパスは、envでたたいたあとでてきたCLASSPATHの記述をそのまま漏れなく記述しました。 そのあと、クーロンで実行したところ、 以下のようなエラーがクーロンのログででました。(abc.shはJAVAを実行するための親シェル) > CMD: sh /usr/local/sh/4/abc.sh > root 17553 c (月) 9月 8 17:24:00 2003 < root 17553 c (月) 9月 8 17:24:02 2003 rc=1 rc=1は明らかに環境変数のエラーだそうです。 しかし、他に一体何が足りないのか!?がさっぱりです。 少しでもヒントをご存知の方、よろしくお願いします。

  • シェルにてファイルの自動削除をするには?

    シェルにて「abc.0101171109(.以降は年月日時分)」 というようなログファイルを一日3回、作成しています。 これを一週間、または一ヶ月たったら 自動的に削除するにはどうすればよいでしょうか。 OSはSolaris2.6で、 シェルはBでもCでも何でもかまいませんのでよろしくお願い致します。

  • solarisのクーロンタブで・・

    現在、solarisのシステムを運用しており、ログのバックアップをクーロンで自動バックアップしようと考えています。 で、エディットを立ち上げるため、 crontab -e のコマンドを打ってみたのですが、 848 と表示されます。 おそらくテキストエディターとして働いているような気がするのですが怖くて触れません。 この数字は一体何なんでしょうか?

  • findコマンドで2週間以内のファイルをあるフォルダに移動するのですが。。

    現在solarisのシステムを運用しています。 ログを毎日定時にバックアップしていますが、 findコマンドで2週間以内のファイル探し、オプションのexec mvで、あるフォルダに移動するという方法を取っています。問題なく移動されるものの、変なメッセージが表示されます。 cannot open /abc/def ファイルが見つかりません cannot open /abc/def/aaa.tar ファイルが見つかりません ・・・ というのがずらーっと出てきます。 これはどういう意味なのでしょうか? このままクーロンとかで運用しても問題ないでしょうか?

  • BシェルとCシェル

    Solarisサーバの運用において、シェルでスクリプトを作成する場合、BシェルとCシェルでは、どちらが多く用いられているでしょうか?

  • Solaris9でdateコマンドの結果がおかしい

    sun fire + Solaris9でシェルを作成しました。 目的は、1ヶ月前のログを削除する です。 で、こんなシェルを作成しました。 #!/bin/sh # logmove.sh DAY=`date +%d` RMDAY=`env TZ=JST+735 date +%Y%m%d` # 24H*31Day-9H=735 RMFILE=log_${RMDAY}.* (以下省略) しかし、この結果、$RMDAYには今日の日付しか返ってきません。これを RMDAY=`env TZ=JST+159 date +%Y%m%d` # 24H*7Day-9H=159 とすると、ちゃんと1週間前の日付が返ってきます。 dateの仕様なのか、シェルの仕様なのか良くわかりません。解決策はないでしょうか。

  • solarisで2週間前のファイルを指定する方法

    現在solarisのシステムを運用しており、ログのバックアップをしています。 クーロンによる時間指定で、別フォルダに圧縮してバックアップという 形なのですが、現在ではたまる一方なので2週間前のものを削除したいと考えています。 ファイルは log_`date "+%Y%m%d"`.tar という風に本日の日付で命名しているので、 本日から二週間前のものを削除、というスクリプトにしたいのですが。。。 if [*** -* ・・・] のような条件設定で、 たとえばファイル名が今日の日付から2週間前の日付が入っているかどうかを判定させるには どうしたらいいでしょうか? またはタイムスタンプを参照して、それが2週間前以前のもの、という指定をする方法があるのでしょうか? よろしくお願いします。

  • solaris8 openwindows のワークスペースメニューから起動しない

    いつもお世話になっております。 solaris2.6のopenwindowsのワークスペースメニューを solaris8のopenwindowsにて使いたいと思います。 メニューにはプログラムが記載され、 ワークスペースメニューから起動できていました。 solaris2.6で起動できていたプログラムが solaris8では起動しません。 シェルから実行すると起動できます。 フルパスを指定しても、execで書いても、$HOME/***と指定しても起動できません。 どなたかご存知の方がいらっしゃいましたら 教えていただけませんでしょうか? よろしくお願いいたします。

  • シェルの存在確認コマンドでファイルを認識しない

    現在、solarisの吐き出すログの自動バックアップshellを運用しています。そのshellの内容は ifでディレクトリ内存在確認後、*でtarに固める、というもので、 if [ -s $abc/* ]; then cd $abc tar -cvf abc_`date "+%Y%m%d"`.tar * という内容なのですが、 if [ -s ・・・ の存在確認の時点でファイルは実際に存在するのに 存在を認識しない場合があるのです。。 ディレクトリ内のファイルの実行権を変えても認識せず、 たとえば認識しないディレクトリの中に「a」というファイルを 作って再度シェルを流してみると、今度は認識します。しかし削除するとしなくなります。また、認識しないファイルのmvで変名してやってみるとうまくいきます。 何が問題なのでしょうか?ファイルの存在確認において、認識しない場合というのがあるのでしょうか? お助けください!よろしくお願いします。