質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
バックアップ

バックアップとは、保存データやプログラムの複製を異なる記録装置などへ保存することを言います。バックアップを取っておくことで、機器のトラブルでデータが損傷するなどの不測の事態にもデータを複製することが可能です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

解決済

1回答

1463閲覧

rsyncコマンド+daily.localでのバックアップ作成について

退会済みユーザー

退会済みユーザー

総合スコア0

バックアップ

バックアップとは、保存データやプログラムの複製を異なる記録装置などへ保存することを言います。バックアップを取っておくことで、機器のトラブルでデータが損傷するなどの不測の事態にもデータを複製することが可能です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

0グッド

1クリップ

投稿2020/06/19 13:20

rsyncコマンドにて特定のディレクトリを作成したバックアップ用ディレクトリへ
一日単位でバックアップ保存したいと思い、設定し、問題なく動作することが確認できたのですが、

保存したいディレクトリやファイル毎にトリガーの時間を細かく分けたいと思っております。

com.apple.periodic-daily.plist内にて
現在は86400秒(24H)設定としておりますので、前述の一つだけ作成した
バックアップ処理が適応対象となりますが、

その他に2日毎にバックアップを取りたい場合や数十分毎にバックアップを取りたいディレクトリなどを
それぞれ分けながら保存する処理などは可能なのでしょうか。

具体的な状況の記述を忘れていたので書いていきます

html

1//imgディレクトリをBackupディレクトリへバックアップ設定 21.rsync --delete -avE img Backup/ 3 4//daily.localの1行目にトリガー設定を記述 5 62.sudo vim /etc/daily.localにて以下を記述 7rsync -aE --delete /Users/admin/Desktop/img /Users/admin/Desktop/Backup/ 8 9//動作の確認 103.sudo periodic daily

助言などいただけましたら嬉しく思います。
必要情報やわかりにくい点などあればご指摘いただければと思います。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hidezzz

2020/06/19 15:01 編集

ディレクトリごとにバックアップ間隔を変えたいのならば、そのディレクトリごとにrsyncを使ったバックアップスクリプトとそれを起動するためのcron設定をそれぞれ独立で用意するのが単純な解決方法となると思いますが、そうでなく統合で扱いたいような何らかの理由があったりしますか? また、もし統合のような形でバックアップを取る場合、バックアップ先の構造はどのようなものを想定していますか?(数十分、1日,2日単位でバックアップする場合、2日に1回は完全な(数十分+1日分+2日分)バックアップ、1日に1回は数十分+1日分のバックアップ、数十分に1回の数十分のバックアップ分だけが含まれるディレクトリがたくさん出来るというような構成になるのでしょうか?)
退会済みユーザー

退会済みユーザー

2020/06/19 16:29

ご回答のほど、ありがとうございます! バックアップに関しては統合できれば一番理想的だと思いますが、理由としては単に一つのディレクトリに格納されている方が見やすい程度ですが、目的としては弱いかもしれません...! バックアップ目的は業務上などではなく、あくまで自身のファイルやimgなどをバックアップ処理したいと思っております。主眼はプログラミングとして、こちらの処理を覚えたい方が強いです。 ディレクトリ毎にバックアップスクリプトが必要とのことですが、現在、daily.localは一つしか存在しないみたいなのですが、その場合は同じようにdaily.localを複数作成し、それぞれ rsync --delete -avE バックアップ元ディレクトリ バックアップ先ディレクトリ/ のように記述し、 さらに、トリガー条件ようのcom.apple.periodic-daily.plistも同じ数作成し、条件を変更していくような形になるのでしょうか。 恐縮なのですが、文末のあたり理解が追いつけませんでした。 試験的には3つのディレクトリを対象に Aディレクトリ = 数十分に一度バックアップ Bディレクトリ = 1時間に一度バックアップ Cディレクトリ = 二日に一度バックアップ で設定していきたいと思っております。 一日に一度のバックアップはひとまず作成できたので除外しております。 自分でも調べてみます。
guest

回答1

0

ベストアンサー

「そのディレクトリごとにrsyncを使ったバックアップスクリプトとそれを起動するためのcron設定をそれぞれ独立で用意する」という方向で行くということですね。そのやり方が単純で良いと思います。

ちなみにもしバックアップ対象のバックアップ間隔を全体一括で(数十分とか)短くしすぎると、バックアップが累積することによって専有する容量が大きくなりすぎるという理由だったとしたら、(ディレクトリごとにバックアップ間隔を別々に設定することで専有容量を軽減したいという理由だったとしたら)、rsyncの「--link-dest」オプションを使うという方向でバックアップ専有容量の低減が出来る可能性があるということを提案しようと思っていました。

さらに、トリガー条件ようのcom.apple.periodic-daily.plistも同じ数作成し、条件を変更していくような形になるのでしょうか。

UNIX/Linuxでは「cron」という分単位で指定した起動時刻に指定したコマンドを実行させる仕組みがあります。
Macで使えるかはよく分かってないのでMacの流儀に合っているのかはわからないのですが、使えるのならばcronに登録すれば良いと思います。

投稿2020/06/19 17:04

hidezzz

総合スコア1248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/20 05:54

ありがとうございます!なるほどです。 macにおいてはcronやanacronのようなもの、サービス管理等は全てlaunchdという一括管理になっているみたいです。詳しくはわからないのですが..... とりあえずは助言いただいたようにそれぞれ独立設計で作成していくつもりなのですが、 問題としては現在、前述のバックアップスクリプトとcron設定ファイルが以下 [cron設定ファイル] /System/Library/LaunchDaemons/com.apple.periodic-daily *その他にもcom.apple.periodic-weeklyやcom.apple.periodic-monthlyも週、月ごとに用意されている模様です。 [バックアップスクリプト] /etc/daily.local -中身- -aE --delete /Users/admin/Desktop/img /Users/admin/Desktop/Backup/ なのですが、現在は上記設定にて問題なく動きますが、 独立としてあと2つほど追加する場合は同じ名称のものを用意するのか、名称変更するのかが不明でした。 参考書には 「自分自身で定期的に実行するスクリプトを用意したい場合は、/etc/daily.local,/etc/weekly.local, /etc/monthly.localといった名前でスクリプトファイルを作成します」 とありましたが、そもそものdaily.localはデフォルトでひとつ作られていたので、今回ひとつぶんのバックアップ処理は完成しましたが、後続のバックアップ処理用ファイルはどのような名称で作成していくのか...... cron設定ファイルに関しても同じ名称なのか、また週間や月刊ではなく、全てが数時間以内で時間に差異のあるバックアップ方式にしたい場合はweeklyやmonthlyを使わず、dailyを3つ用意するべきなのか。もしくは既存のweeklyの記述を変えるべきか..... よくわからない表記で以下の文も載っていて 「/etc/periodic/daily内に999.localがあり、こちらのファイルでは/etc/daily.localが存在していれば それを呼び出すように設定されている」 とのことでしたが、同じ名称でファイルを作った場合はバックアップスクリプトはコピー元などが記載されているので判別がつくとしても、cron設定はなぜ対象ディレクトリ毎に判別できるか不明です。 少し気になったのはcron設定のファイル内に <array> <string>/usr/libexec/periodic-wrapper</string> <string>daily</string> </array> という表記があり、string2行目が引数と書かれていたので、もしかすると OO.localというファイルのOOにてcron設定ファイル内の引数箇所との紐付けが行われているのかもしれません。 色々と試してみたいと思います。
hidezzz

2020/06/20 08:29 編集

Macの事情を知らないまま回答を続けるのもどうかと思いますが、とりあえず続けます。(Mac知ってるひとが来るまで…)。ベースになってるFreeBSDの場合はこうなってたという記憶を元に書いているのでMacには適用できないことがあるかもしれません。 dailyと付いているものを使う限り、それ以下の時間間隔での呼び出しは出来ないと思います。 daily,weekly,monthlyで呼ばれるスクリプトは元をたどるとcronの仕組みを使って呼び出されているのではないでしょうか。 直接cronにスクリプトを登録してしまうのが良いような気がします。
退会済みユーザー

退会済みユーザー

2020/06/20 11:33

hidezzzさん、回答ありがとうございます。 Mac内容にも関わらず色々お答えいただきありがとうございます。 確認して行ったところ、確定ではないですが、どうやらデフォルトで設定されている一日分の時間トリガーなどは変更しても、反映でしていないようでした。 300秒設定とし、sudo periodic daily(トリガーバックアップできているかの確認)を行いましたが、 動きませんでした。私の設定が悪いだけかもしれませんが..... 自作スクリプトを使用する場合は〜という表記が参考書にもあるのですが、いまいちわかりにくく具体例がなかったのですが実際は可能な旨が記載されていたので、おそらくできるみたいですが、 バックアップスクリプト自体をどこにおき、またスクリプト名とcron設定内部の引数なども確認する限りは紐づいていないようでした。(そもそもdaily.localやweekly.localなどの名前以外に変更すると動作しないみたいです。) cron内に直接スクリプト記述などに関してはちょっと私にはまだ難しい気がしますので、もう少し精進してから臨んでみたいと思います。 ご親切にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問