• ベストアンサー

rsyncの差分フォルダを定期的削(Linux

rsyncで作った差分フォルダを定期的削除するには、どうしたらよいでしょうか? いまのところ、1時間毎バックアップしているので、 backup_20190610-00 こういう名前のフォルダができます。 backup_年月日-時 です。 1ヶ月以上古いものは、削除したいのですが、findで1ヶ月以上前に作られたフォルダを削除する・・・、とかはスマートではないものの、簡単だと思っています。 みなさんは、どうしますか? Linuxのubuntu、Bashです。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4843/10252)
回答No.1

> findで1ヶ月以上前に作られたフォルダを削除する が普通です。

tukuneto
質問者

お礼

これが一番普通ですかね。 ありがとうございます。

その他の回答 (4)

  • agehage
  • ベストアンサー率22% (2538/11295)
回答No.5

再度補足を見ました 勘違いをしてる?ことに関しての回答です 質問内容(定期的削除)からcronを利用したことがないのかな?と思っての回答です cronですのでスクリプトとなりますね 質問文にはこれらの文言がないので、これらの事を教えたわけです このヒントがあれば自動的に削除出来るものを作れます 知らないと自動的には無理ですからね 最初の文章、最後の文章に対する回答として「cronでスクリプト」となりました どうしたらよいでしょうか?どうしますか?に対してスクリプトを書いて欲しいとまでは読めませんでした

tukuneto
質問者

お礼

なるほど、「rsyncは知っているが、cronは知らないだろう。」と、考えたわけですね。 確かにそう考えれば、そうも考えられますね。 全体での推定をするか、部分での推定を強くするかの違いですかね。 答えいにくい余談に、回答ありがとうございます。

回答No.4

バックアップディレクトリ内を後から触る(更新・削除)こともあり、その場合 ディレクトリのタイムスタンプが更新されるので findだと削除漏れすることもあるとか findの深さ指定のミスで、昨日のバックアップなのに更新のない子ディレクトリを誤って消してしまうのが怖い ってことなら、 rmtarget=`date '+backup_%Y%m%d' --date "31 day ago"` で 今日から31日前の "backup_20190511"という文字列を作っておいて "-時"のところは、どうせ全部削除対象になるのでワイルドカードにして rm -fr $rmtarget-* とすれば、よさそさそうですけど。

tukuneto
質問者

お礼

結局、試行錯誤した結果。 年月のフォルダの中に、時間を作り、いろいろとしました。 皆さんに回答は参考にしました。 ありがとうございます。

  • agehage
  • ベストアンサー率22% (2538/11295)
回答No.3

補足を見ました 対象のフォルダを消すスクリプトでよいのでは? 補足の意味がよくわかりませんでした スクリプトの記述方法を教えてほしいという意味でしょうか

tukuneto
質問者

お礼

なるほどです。 ありがとうございます。

tukuneto
質問者

補足

ああ、なるほど。 どう質問を読んでいたのか?が、わからないのですが、問題点はわかりました。 ちょっと、質問からそれて、あなたの思考の方に興味がありますので、その点を中心に、回答お願いできるでしょうか? 私の質問を、まとめるとこうです。 ///////// rsyncで(作ったスクリプト)で、差分フォルダ(backup_20190610-00(backup_年月日-時))を定期的削除するには、どうしたらよいでしょうか? 「古いものは削除したい」場合、みなさんは、どうしますか? ///////// というものです。 Linuxでrsyncを使う以上スクリプトです。 そして、それに続く、「古いものは削除したい」はスクリプトと考えるはずです。 手作業で消せるのなら、小学生だって、手作業で消していますから、手作業で消すという質問は、自然となくなるはずです。 「手作業で消すにはどうしたら良いですか?」とは、普通は聞きませんから。 また、「スクリプトを作ったことがある人なら、rsyncで(作ったスクリプト)の中に過去のバックアップの削除を組み込みたいんだろうなー」、という想像は、難しくないはずです。 ので、あなたの >「shellスクリプトを書いてcronで定期実行じゃダメ?」 が、質問の意図を根本的に読み間違えているのかな?と考えたわけです。 で、質問とは別に、なぜ、根本的に読み違えたのか?を知りたかったのです。 で、再度の回答で >「スクリプトの記述方法を教えてほしいという意味でしょうか」 と、私からすれば、「当たり前にスクリプトでしょ」、という前提が伝わっていなかったことはわかりました。 確かに、「削除するスクリプトはどう書きますか?」とは、書いていません。 しかし、しかし想像きる範囲だと思うのですが・・・? というか、それ以外の選択肢が私には想像できません。 「なぜ、伝わらなかったのか?」を知りたいのですが、なにか心当たりはあるでしょうか? 念のためにこれは賛否ではなく、質問の意図の読み取り方のプロセスが、私とは根本的には違うと思うのですが、それを知りたいのです。 ぶしつけて、自覚しにくい部分だと思うのですが、よろしくお願いします。 とても興味あります。

  • agehage
  • ベストアンサー率22% (2538/11295)
回答No.2

shellスクリプトを書いてcronで定期実行じゃダメ?

tukuneto
質問者

お礼

なるほどです。 ありがとうございます。

tukuneto
質問者

補足

>shellスクリプトを書いてcronで定期実行じゃダメ? どういうスクリプトを書いて、どう過去のフォルダを消していきます? 差分のフォルダ名自体は、時間がわかれば任意でかまいません。 のと、「もし勘違いで回答しちゃったよ!」というのなら、どういう状況で、その勘違いが起きたと思いますか?

関連するQ&A

  • rsync での差分バックアップ

    rsync の --link-dest オプションを使っての差分バックアップができません。 外付けHDD『Photos』から、 外付けHDD『Backup』の中に『201403』『201404』といったフォルダを作り、 一ヶ月に一回差分バックアップを取りたいです。 まず $ rsync -av /Volumes/Photos /Volumes/Backup/201403 でバックアップした後(これはうまくいきました)、 $ rsync -av --link-dest=../201403 /Volumes/Photos /Volumes/Backup/201404 で差分バックアップをしたいのですが、ハードリンクが作られず、 201404フォルダ内にPhotosフォルダの全てをバックアップしてしまいます。 どこが間違っているかを教えてほしいです。 環境:Mac OS X 10.8.5 rsync version 2.6.9 protocol version 29 参照したサイト:rsyncで差分バックアップを行うための「--link-dest」オプション http://www.itmedia.co.jp/enterprise/articles/0804/25/news034.html

    • ベストアンサー
    • Mac
  • rsyncコマンドでのバックアップについて

    Linux初心者です。よろしくお願いします! あるログの差分をとりバックアップをしたいと考えています。 rsyncを使うと簡単にできると分かりました。 しかし、rsyncはその名の通り「同期」をしているようで、例えば、下記のようなバックアップ取得ができないように思えます。 1日分しかログを残さないファイルがあるとします。(前日分のログは消されていく) rsyncを使って、この「元ファイル」の前日分も残しながら差分をバックアップする。 rsyncを使って上記のようなバックアップは可能でしょうか? また、他に上記のバックアップ方法に向いたコマンドやシェルのアイデアがありましたら、アドバイスをよろしくお願いいたします。

  • ポータブルHDにバックアップを取る方法(rsync)

    Ubuntu8.04 をファイルサーバとして使っています。 あるディレクトリをSambaでネットワーク内のWindowsクライアントに 共有させています。 このディレクトリをUSBポータブルHDにバックアップ取ることを考え、 全体としてのサイズはそこそこありますが、日々の変更分は多くないこともあり、 rsyncで差分バックアップを取ることを試みているのですが、どうも理想通りの 動きをしてくれません。 差分バックアップなので、更新していないファイル、フォルダは更新をしてほしく ないのですが、rsyncを起動させるたびに更新します。 まず、rsyncのコマンドですが、 rsync -auv --exclude 'tmp/' --delete /home/share /mnt/usb/backup/ で、やってみました。 chownのエラーが出たので、ポータブルディスクがvfatであることから オプションが問題なのかと思い、 -rlptDuv -rltDuv -ruv 等々オプションを変更させながら試してますが、エラーは出なくなったものの rsyncのコマンドを実行するたびに元ファイルが更新されていなくてもバックアップされるファイルが多々あります。 (オプションを減らすごとにその数は減ったのですが) ただ、上記オプション以上は修正すべき点がわからず困っています。 解決策についてアドバイス等いただければと思います。 よろしくお願い致します。

  • フォルダを差分バックアップしたら?

    差分バックアップでは、変化のあったものだけを(追加して)セーブすると説明されていますね。 それでは、フォルダ単位で差分バックアップした場合は、そのフォルダに前はあったけれど、今回のバックアップ時には削除されていたファイルはどうなるのですか?

  • Acrnis True Imageの差分

    少し長くなりますが宜しくお願いいたします Acronis True Image 11 Homeを使用していますが どうしても納得いかないことが有ります 差分Backupで「バックアップ最大回数を4回」「毎週日曜日」として 設定しました、1回目は完全Backupで1週間づつずれて4回Backupが出来ました(4フォルダ)ここまでは解ります ここで質問ですが、其のままにしておいたら1週間した5回目に 今まであった全てのフォルダが同じ更新日に変更されました 時間は少しずつずれていますが(4フォルダ全て同じ更新日になった) そこで、また其のままにしておき、1週間たちまたBackupが始まり 4フォルダの他に1フォルダ出来ました、これは完全Backupの様です で、合計5フォルダ出来ました、まだBackupしている様でしたので 多分あと3フォルダ作るではないかと思い途中で中止しました(時間がかかる) バックアップ最大回数を4回として有るので前に有る4フォルダは5回目には自動的に削除されないのでしょうか、手動で削除でもかまいませんがその場合には、5回目のフォルダを残して前の4フォルダは削除するのでしょうかそれとも、今までの4フォルダを削除しておき新しく設定をし直すと言うことですか メーカーに質問しましたが、説明が回答者により違う回答で良く理解出来ません どなた様か差分でBackupしている方が居られましたらご指導宜しくお願いいたします。

  • rsyncを使ったバックアップの方法

    WEBデザイナーをしています。 日々の制作データを別マシンにバックアップをとる方法として、 Windows環境にCygwinをインストールして、rsyncを使って、 バックアップをとろうとしています。 やりたいことは、作業マシン(コピー元)から、別マシン(コピー先)に 日々バックアップをとる。さらに、その日に変更された差分ファイルのみ、 別フォルダに保存したいのです。 つまり、作業マシンと、バックアップ先は常に同期がとれていて、 その日変更されたファイルは、同期がとる直前の差分ファイルのみを、 その日時をフォルダ名としたフォルダに保存する。 UNIXについての知識がなく、rsyncのサイトをかいつまんだ知識しか ありません。上記のことができるのか、どうすればできるのか、 をおしえていただきたいのです。

  • 差分バックアップについて

    差分バックアップとはどういう機能でしょうか? 「前回のバックアップ以降、追加したファイルだけをバックアップするため短時間で終わる」というのはわかるのですが、 例えば、 ●前回のバックアップ後、削除したファイル・フォルダ ●名前だけ変更したファイル・またはフォルダ ●名前はそのままだが中身を編集したファイル はバックアップ先に反映されないのでしょうか? 差分バックアップ後に、きちんとバックアップ元とバックアップ先が同じファイル構成になっていることを希望しているのですが、上記のようなファイル操作がある場合、いかがでしょうか? BUFFALOの外付けハードディスクに付いてた「簡単バックアップ」というソフトに差分バックアップの機能が付いていたため質問させていただきました。 宜しくお願い致します。

  • HD革命 差分バックアップについて

    結局、差分バックアップのファイルをけすと復元できないのか、できるのかどちらなのでしょう。 ○○ 様 「HD革命/BackUp Easy」で行う差分バックアップは同期ではありません。 あくまで差分バックアップが実行された時点の状態を保存しています。 「HD 革命 / BackUp Easy」 にてバックアップを行いますと、初回は以下のファイルが作成されます。 ファイル名.hdf(バックアップファイル) ファイル名.hdm(管理ファイル) ファイル/フォルダ単位のバックアップのため、バックアップを行う際にファイルの保存場所などを管理ファイルに記録しております。 差分バックアップを行う場合、以上で作成された元となるバックアップファイルと管理ファイルを参照し、差分のバックアップを行います。 差分バックアップを実行するたびに、過去のバックアップファイルと、それに対応する 差分分をあわせて、最新状態がバックアップされます。 各世代では、今の状態と、元となったバックアップファイルの最初のバックアップ時の状態との違い部分のみをバックアップしています。 それ以前の世代での変更内容などは含んでいません。 ただし、差分バックアップの行われた履歴を管理しているため、 管理ファイルや、途中のバックアップファイルがひとつでも失われた場合、 復元が行えなくなります。 □□さまの説明だと、 削除されたデータは、削除されたという情報がバックアップされ、差分データから復元する際には復元されない> という事になろうかと思うのですが、 つまりこれは同期をしているということでしょうか。ここでの同期とはコピー元とコピー先を一致させる処理という意味です。 もし、HD革命の差分バックアップが同期的な機能だとしたら、 先述の通り、差分バックアップでは、各世代では、元となったバックアップファイル(hdfファイル)と、過去の差分バックアップファイルとの状態を比較しています。 そのため、差分バックアップファイルは、差分バックアップごとに増えていく ことになりますが、1つでも削除されたり、破損してしまいますと、次回の差分 バックアップや復元が実行できなくなってしまいます。 というくだりが理解できかねます。 同期をするのであれば、今までの差分バックアップファイルが消えても初回のバックアップファイルさえあれば復元できるのでは?と思えます。 もしくは、今まで差分バックアップファイルを利用して、同期をしていると考えればよろしいのでしょうか? ○○ 様  B時点では、bのファイルを削除した状態の差分バックアップに なるので、この時点(世代)のバックアップファイルを復元しても bはありません。 bのファイルを戻したい場合は、A時点のバックアップファイルを 復元する必要があります。 「HD革命/BackUp Easy」の差分バックアップでは、元となる バックアップファイル(hdfファイル)と管理ファイル(hdmファイル)を 参照し、差分のバックアップを行います。 差分バックアップを実行するたびに、過去のバックアップファイルと、 それに対応する差分分をあわせて、最新状態がバックアップされ新しい 差分バックアップファイルが作成されます。 ひとつのバックアップファイルを、1つの世代、として管理します。 復元を行う際には、任意の世代を選択することができますが、その世代で バックアップした時の状態のみが復元されることになります。 差分バックアップファイルは、差分バックアップごとに増えていく ことになりますが、1つでも削除されたり、破損してしまいますと、次回の差分 バックアップや復元が実行できなくなってしまいます。 また、hdf(バックアップファイル(hdf)、管理ファイル(hdm)、差分 バックアップファイル(hdi)は、すべて同じフォルダ内に保存されていることが 必要ですので、ご注意ください。 差分バックアップは、増えた分だけバックアップすると認識しておるのですが、バックアップを取った後に削除したファイルやフォルダはその後差分バックアップをした際、削除したファイルもバックアップされるのでしょうか。 例えば、      A時点 ⇒  B時点  ⇒  ?? a,b,c a,c      A時点でa,b,cファイルのバックアップを取り、B時点でbのファイルを消し、差分バックアップをとると、その後はa,b,cのファイルが残っているのか、bが消え、a.cが残っているのかどちらなのでしょうか。  いいかえると、B時点でのファイルを復元するとbが残っているのかということです。もし残らないとすれば以前バックアップしたファイルも全て残しておかなければ削除したファイルは元に戻らないという事になるのでしょうか

  • rsync -vr /home/data /mnt/win >> backup.logのリダイレクトの日本語表示について

    centos5 にて Samba version 3.0.28-1.el5_2.1 を運用中です、 Sambaのデータを他のwindowsパソコンのフォルダ(//192.168.0.5/backup)にバックアップするために以下のようなシェルスクリプトを書きcronで実行しています。 #!/bin/bash echo 'バックアップ日' > backup.log date >> backup.log mount -t cifs -o username=root,password=abcd //192.168.0.5/backup /mnt/win echo 'マウント完了' >> backup.log rsync -vr /home/data /mnt/win >> backup.log cronにて自動実行された後backup.logを覗いてみると バックアップ日やマウント完了という文字はきちんと日本語になってリダイレクト されているのですが、 rsync -vr /home/data /mnt/win >> backup.log の結果のログがアルファベットはいいのですが、日本語のフォルダ名やファイル名が#944\#948\#492\#483\#309といった感じ何かのコードみたいになって 何がバックアップされたか分かりません。 きちんと日本語の表記になる方法があればお教え願います。

  • RedHat Enterprise Linux 5での毎日定期的なデー

    RedHat Enterprise Linux 5での毎日定期的なデータバックアップをするためには、どんな方法がありますか?ARCServe Backupを使う方法がありますが、おすすめの方法を教えてください。