• ベストアンサー

[Linux-RHEL5.2]1ヵ月分残すようなバックアップスクリプトを作成したい

バックアップの周期は一週間に一回で4週分溜まったら古いのから順に削除されていくような仕組みにしたいと考えてます。 素人なりにあれこれ調べてはみましたが ↓↓このような形でやろうとしてる事が可能でしょうか?? "find ./ -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;" ご教示いただけたらと思います。 宜しくお願いします。

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

  • ベストアンサー
  • pakuti
  • ベストアンサー率50% (317/631)
回答No.1

私も同じようにやっています。 バックアップ終了時に行なえば良いのではないでしょうか。 条件 ・コマンド実行時にバックアップディレクトリにchange directoryしている事 ・バックアップファイル以外は存在しない事 疑問 ・バックアップは、ディレクトリごとコピー?圧縮はしていないのでしょうか? ・バックアップファイル名に規則性は無いのでしょうか?

noname#135569
質問者

お礼

>私も同じようにやっています。 >バックアップ終了時に行なえば良いのではないでしょうか。 なるほどです。。 >条件 >・コマンド実行時にバックアップディレクトリにchange directoryしている事 >・バックアップファイル以外は存在しない事 どちらも満たしています。 >疑問 >・バックアップは、ディレクトリごとコピー?圧縮はしていないのでしょうか? ディレクトリごとコピーしています。 圧縮はかけていません。。 >・バックアップファイル名に規則性は無いのでしょうか? ファイル名は(yyyymmdd)になっています。

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

関連するQ&A

  • シェルスクリプトの「{} \;」部分の意味は?グーグル等でも検索できない状態です。

    以下のようなシェルスクリプトを見かけますが、「{} \;」部分の意味が分かりません。記号なので、グーグル等でも検索できない状態です。 #二日前のファイルを削除 find /backup -mtime +1 -maxdepth 1 -name '*.zip' -exec rm -f {} \; 上記のようなシェルスクリプトの「{} \;」部分は、どのような意味があるのでしょうか?特にプログラムと違いシェルスクリプトは;(コロン)で終わる必要がないのに、終わっているのが不思議です。 よろしくお願いします。

  • 古いファイルを削除したいのですが。。。

    こんにちわ。 findコマンドを使って、あるディレクトリにどんどんできるファイルの古くなったものを削除したいのです。 例えば、7日以上更新がないものを削除したく、 # find /hoge/backup -mtime +7 -a -type f -exec rm -f {} \; というコマンドを実行してみましたが、結果は、削除されず残ったままで、しかも一部のファイルが元々古い日付だったものが、実行日時でタイムスタンプが書き変わってしまってます。 シェルはbashでもcshで試しても同じでした。 どうすればよいかご教示お願いできますでしょうか?

  • シェルスクリプトの記載方法

    linuxでシェルスクリプトを書いています サーバ上に「日付のついた*.bak」ファイルが毎日できています これを3日以上経過した*.bakファイルを消去したいので直接 コマンドラインから次のようにキーボードでたたくと正常に消去できます find /root -name '*.bak' -mtime '+3' -exec rm -f {} \; これをシェルスクリプト(sakujyo.bash)として次のように記載し /rootの中におきました ================(sakujyo.bash)===================== #!/bin/bash find /root -name '*.bak' -mtime '+3' -exec rm -f {} \; =================================================== そして # sakujyo.bash と打鍵すると 次のようにエラーとなります -bash: sakujyo.bash: command not found findのpathが通ってないのかとも考えられるのですが・・・ findコマンドは /usr/bin/ の中にあるので次のように記載してみました =================================================== #!/bin/bash cd /usr/bin find /root -name '*.bak' -mtime '+3' -exec rm -f {} \; ==================================================== このようにしても同じエラーとなります 記載方法等教えていただけませんか よろしくお願いします。

  • findで7日前のディレクトリを検知、そのディレクトリを消したい。

    findオプションで質問です。 7日以前のディレクトリ/ファイルを検索して消したいです。 find ~ -mtime +7 -type -df -exec rm -df {} なんて感じで宜しいのでしょうか。 -df というように、ディレクトリ/ファイルを両方いっぺんに 指定できますか? 宜しくお願いいたします。

  • 未使用で一定期間以上経過したファイルの削除

    未使用で一定期間以上経過したファイル(例えばTemp内にあって一週間更新されていないファイル)を自動的に削除するバッチファイルを作成したいと考えています。 何かうまい方法はないでしょうか? unixでの find /temp -mtime +7 -exec rm {} \; のfindにあたるようなのがあれば非常に助かります。

  • findコマンドの挙動について

    いつもお世話になっております。 シェルで3か月前のファイルを削除するようにしたのですが実行すると想定と異なる挙動になり困っております。 シェル自体は他の同バージョンのOSで実績があり問題なく動作したのでこの環境のみ挙動が違うのが分からない状態です。 以下の定義で処理を行っております。(一部パス等は変えております。) find ${logfile}* -daystart -mtime ${days} -exec rm -f {} \; 変数「logfaile]」には別ファイルで設定しているファイルパスが入ります。 変更「days」には別ファイルで設定している日数(今回は3か月なので+93)が入ります。 sh -xで実行したときの結果が以下になります。 find 対象ファイル名 -daystart -mtime $'+93\r' -exec rm -f '{}' ';' ' から `-mtime'な引数 `+93 対象の日数の部分でうまく値が取得できずその部分がエラーになってしまっています。 何かお気づきのことがありましたらアドバイスの方よろしくお願いいたします。

  • 1週間経過したファイルを削除 かつ最新のファイルは残しておきたい

    こんばんは、初投稿になります。 現在Linux系サーバのファイル管理を行っているのですが /tmpディレクトリに定期的ファイルが作成される設定にしております。 そこで1週間以上経過したファイルは削除し、かつ最新のファイルは 1つは残すような仕組みにしたいのですが…cronに登録し find /tmp -mtime +7 -type f -exec rm -fr {} \; をしてみたのですが、10日更新されなかった場合は全てのファイルが消えてしまいます。最新のファイルだけは残せる方法をご存知でしたら 教えてください。 よろしくお願いします。

  • バックアップスクリプトの作り方

    Linuxシステムに数値計算結果を格納するデータサーバーがあります。 これのバックアップをする仕組みを作りたいのでアドバイス頂けないでしょうか? やりたい内容を以下に記述します。 ■概要 /data/simulation → /data/backup に必要なデータのみコピー ■詳細 /data/simulationは約5TBあります。 内部に100単位の子ディレクトリ、孫ディレクトリもあります。 データが大きすぎて、計算結果本体はバックアップしづらいので 計算結果を再現できるようなデータ(計算条件などの)のみをバックアップしたいです。 ※計算条件だけであれば、5TB中100GB程度で済みます。 処理フローのイメージとしては、 1) バックアップ除外ファイルをリスト化 2) 除外ファイルを除き、ディレクトリ構造を含めて /data/simulationから/data/backupにコピーする ※差分コピーができればベターですが、全上書きコピーでもかまいません。 になります。 素人考えでは、以下のようなシェルスクリプトでできるかなとも思うのですが いかがでしょうか? #!/bin/tcsh foreach dn( `find /data/simulation -type d -print` ) if ( ! -d $dn:s/simulation/backup/ ) mkdir -p $dn:s/simulation/backup/ foreach fn( `ls $dn:s/simulation/backup/*` ) --除外ファイル以外をコピー-- end end 除外ファイルを100種ほど定義しなくてはならないので、処理は遅そうですが、、、。 Windowsであれば、様々なツールで除外ファイルを決められるバックアップソフトで 差分バックアップができますが、このようなツールはLinuxにあるのでしょうか? 使用ディストリビューションはRedHat Enterprize Linux 4です。 X上で動くアプリでいいのがあれば、それで解決してしまうのかもしれません。 以上、助言よろしくお願いいたします。

  • マウントしたファイルサーバーのファイルを削除する際に発生するエラーについて

    linuxのサーバーから、linuxのファイルサーバーにマウントし、ファイルサーバーから6日前に作成したファイルを消すという処理を記述したシェルを毎日実行しています。 ファイルを消す際のコマンドは以下です。 days=6 mntdir="/mnt/smb" find $mntdir/. -mtime +$days -exec rm -f {} \; この処理を3年程行って来ましたが、 ここ1週間ほど毎日以下のエラーが発生します。 find: /mnt/smb/.: 実効性のないNFSファイルハンドルです このエラーが起こる原因がわからないのですが、 ご存知の方いらっしゃいますでしょうか。

  • timemachineの古いバックアップを効率的に

    timemachineの古いバックアップを効率的に削除する方法があれば教えて下さい。 Time Machineのメニューから過去のバックアップを選択して1日づつ削除していますが表示自体に時間がかかり効率的ではありません。 また、finderでバックアップのあるボリュームを覗き、手動で削除もできるようですがあまり推奨されていないようです。 rm -rfにいたってはappleはやらないで!と言っているみたいです。 ボリュームを共用していて、Time Machineに容量を割きたくありません。

    • 締切済み
    • Mac