• ベストアンサー

ファイルサイズによる条件分岐

ログファイルのローテート設定をかけようとしています。 /etc/cron.weekly にシェルを配置し、週次でローテートする中で 指定のログファイルが0バイトの場合はローテートを行わないよう if文で条件分岐する必要があります。 その場合の構文はどのようになるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • lunarosa
  • ベストアンサー率73% (30/41)
回答No.3

if [ ! -s ファイル ]; then ファイルサイズが 0 以外の場合の処理 fi

noname#26506
質問者

お礼

ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • stiffels
  • ベストアンサー率34% (25/72)
回答No.2

現在実機なくてうる覚えですが if [-ne 0 (-s ファイル名)]; then こんなんでいけませんでしたっけ?

noname#26506
質問者

お礼

ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。
  • mtfoggy
  • ベストアンサー率14% (37/255)
回答No.1

>指定のログファイルが0バイトの場合はローテートを行わないよう >if文で条件分岐する必要があります。 なぜ必要なのでしょうか? 「その週のアクセスは0件でした。」 というのも大切なアクセスログ情報だと思いますが。。。

noname#26506
質問者

お礼

質問内容を理解されておられないようです

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 文法 ファイル分岐とif分

    shシェルのスクリプトで該当ファイルがあるか無いかで分岐させたいのですが、 構文はどうすればよいのでしょうか? 以下、したいことです。 if then ファイルが無い場合  スクリプト終了 end if

  • cronについて教えてください

    こんばんは。 Redhat Linuxを使用しております。 今回Cronで不要ファイルの削除を設定したいのですが、 その方法でわからない点があります。 「/etc/cron.monthly、cron.weekly、cron.daily、cron.hourly」 などの配下にシェルを置き、「/etc/crontab」ファイルの記載から これらシェルを呼び出すと思っています。 で「/var/spool/cron/user」ファイルなるものがありますが、 これの使用用途が分からず・・。 「/var/spool/cron/user」は必須の設定項目でしょうか?。 すみませんがアドバイスお願いします。

  • 条件分岐について

    Javaの条件分岐のことで質問させていただきます。 入力された値によって、適切なHTMLタグを表示するプログラムを作っています。 「画像の表示」「画像の幅」「画像の高さ」と項目をわけてそれぞれにJTextFieldを設置し、画像の名前や高さなどを入力。画像の高さと幅についてはJCheckBoxを1つ設置し高さと幅を指定する場合はチェックし、指定しない場合はチェックを外す。という方法を考えています。 現在はif文で「画像の表示」に画像ファイル名(拡張子まで)を入力、「画像の高さ」「画像の幅」に高さと幅を数字で入力、 チェックボックスにチェックを入れ、ボタンを押したらJTextAreaに「<img src="画像ファイル名" Width="幅" Height="高さ">」と表示することはできています。 しかし画像の名前のみ入力して、高さと幅を指定しない(チェックボックスのチェックを外す)など、別の処理を行うif文を上記のif文の後に書いても実行することができません。 switch文で処理を分岐させることも考えていますが、式を上手くかけず悩んでいます。 if文などで上手く処理を分岐させるにはどうすればいいでしょうか?

  • vbscriptによる条件分岐とファイル出力

    vbscript初心者です。ご教授頂けますと幸いです。 ネットワーク監視ログが毎朝出力され、そのログの中身を、各サーバにログインし手作業で確認を行っています。 この作業を、VBscriptで行いたいと思っているのですが、どうもうまくいかず困っています。 正常時のログには必ず「1,2」と文字列が出力されます。 この文字列を検索対象にして、「1,2」の記述があれば、新規の結果確認ログに「ネットワークは正常です」とコメントを付けて、ファイルを出力し、 「1,2」が見つからなかった場合は、そのログファイルの3行目のみを、新規の結果ログファイルに抽出する、VBscriptを作成したいと思っています。 異常時のログファイルには、異常を知らせるコメントが3行記述されてます。必要な行は、3行目だけなので、3行目を結果ログとして出力したい。 以下、構文ですがVB初心者であり、色々なサイトを見て作ってみましたが全然動かず今回、ここに投稿しました。 '検索対象のテキストファイルのオープン Set WshShell = WScript.CreateObject("WScript.Shell") Set objFs = CreateObject("Scripting.FileSystemObject") Set objFs = Fs.OpenTextFile(NlbTmp) If Instr(A,"1,2") > 0 Then MsgBox "ネットワークは正常です" Else ”異常の場合の条件分岐が分からず・・・” Set oText = CreateObject("Scriptting.FileSystemObject").CreateTextFile( 結果ログ.log, True ) str = Fs.ReadLine Fs.WriteLine(str) End If 自分で作成するのが初めてな物で本当によろしくお願い致します。

  • 条件分岐(if)について

    条件分岐(if)についてお聞きしたことがあります。 例えば if($a == 'A' || $a == 'B'){ 処理 }else if($a == 'C' || $a == 'D' || $a == 'E'){ 処理 }............... といった条件分岐があったとて、お聞きしたいことが2点あります。 ・条件分岐この後も数十個続いたとします。その場合もelse ifで一つ一つ 条件を書かなければならないのでしょうか? ・条件式if($a == 'A' || $a == 'B'....)が長くなる場合プログラムが見にくくなるので 別途に条件式を書いておいてif文の所では($a == ◯)といったように簡潔に書くことは できないのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • logrotateの実行時間

    logrotateで「/etc/cron.daily/」以下に日次で実行したいスクリプトを置いていますが、 一部のログファイルを「0時」にローテートされるようにしたいです。 ネットで検索してみたところ「/etc/crontab」にrun-partsの指定があるという資料は見つけたのですが 私のサーバ(CentOs6)にはそのような記述が見当たりません。 「/etc/cron.daily0」のようなディレクトリを作成し、そこに記述された内容は毎日0時に実行するといったことは可能でしょうか?

  • switchでの条件分岐の書き方を教えて下さい。

    こんにちは。 いつもお世話になっております。 またわからない事が出てきてしまったので、どうか ご指導よろしくお願いいたします。 簡単な検索機能をつくりたくて、思考錯誤 しております。 フォームからPOSTで受け取る変数の数は 10個あります。 それぞれの変数が ””でなければ、受け取った 変数を元に、SQL文がかわってゆく。 という事がしたいのです。 10個もあるので、たとえば 変数が$_POST["a"]から$_POST["j"]まであった時に if文を使うとすると if($_POST["a"] != "" && $_POST["b"] == "" && $_POST["c"] != "" (略)){ $stt = "検索したい予定のSQL文1"; }elseif($_POST["a"] == "" && $_POST["b"] != "" && $_POST["c"] != "" (略)){ $stt = "SQL文2"; ・ ・ ・ と言う風に、ものすごいにはなると思うのですがifを つなげていけば良いのかな、と思うのです。 PHPの基礎HPなどを検索してみると、SWITCHを 使えば、多岐に分岐するIF文を、見やすくできる、 と書いてあったので、使ってみたいのですが、書き方の 説明によると switch(変数){ case 値1:  条件を満たす時の処理1 break; case 値2:  条件を満たす時の処理2 default: } と紹介してあったのですが、今回わたしがしたい場合の 条件分岐だと、変数は一つではなく、ある変数は空でこの変数は値が何か入っていて、またもう一つの変数は 空で・・・の時は、このSQL文、というように させたい場合には、switchでどうかけばよいのか わからないのです。 それとも、こういう条件分岐の場合は、switchを 使うべきではないのでしょうか・・・? どうかご指導よろしくお願いいたします。  

    • ベストアンサー
    • PHP
  • phpファイルをcronで動かすには?

    /var/www/html/test.phpというファイルを毎日午前6時に動かしたい(たたく?)のですが、cronをどのように設定したらいいのか分かりません。サーバーはcentos5でroot権限をもっています。 http://www.server-memo.net/tips/crontab.html こちらを参考にしているのですが、どこから手をつけていいのかすら分かりません。 /etc/以下には次のようなファイルやフォルダがありました。 cron.d cron.daily cron.deny cron.hourly cron.weekly crontab これをどのようにして利用したらいいのでしょうか?

  • cronとlogrotateについて

    今、ログのローテーションをやってみたのですが、 logrotate.confとlogrotate.dおよび/etc/crontab、 /etc/cron.daily の中で、/etc/logrotate.confの「weekly」を 「daily」のみ修正してみました。 上記でやってみたのですが、「messages.1」のようにログファイルが 作成されませんでした。 何か他にやらないとできないのでしょうか。 サービス:crondとsyslogなどのサービスはちゃんと起動しております。

  • MS-DOS 条件分岐

    MS-DOS5.00Aですが、BATファイル中で、指定したファイルを開くときにそのファイルが存在しなかった場合に、分岐させるにはどうしたらよいですか? イメージ↓ Copy AAA BBB if ”AAAがなかったら” goto ng echo コピーしました。 end :ng echo ファイルが存在しません。終了します。 end

このQ&Aのポイント
  • ブラザー製品のレーザープリンターで印刷すると縦に黒い線が印刷されるトラブルについて相談します。
  • ネット上の解決方法を試したが改善されず、縦線の汚れがなかなか取れない問題が発生しています。
  • お使いの環境はWindows 10で有線LAN接続しており、関連するソフト・アプリは特にありません。
回答を見る