カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

pycronを使って一定時間毎にバックアップを取るようにした

概要: pycronを使って定期的にrsyncでバックアップ。


二日前からrsync使って外付けHDDにバックアップを取り始めたんだけど、 PC起動時にrsyncを実行するのはちょっとイヤンだったので、 バックアップを取る方法を変更した。

どいうことかというと、前はPC起動時にrsyncを起動してごにょごにょやってたんだけど、

  1. 再起動を繰り返したい時に毎度rsyncが実行される
  2. すべての処理が終わるのに毎回一分ぐらい時間がかかる

という二点がイヤンだったので、pycron使って 一時間毎にrsyncを実行するように変更した。

pycronっていうのはPythonで実装されたWindows用のcronで、サービスとして登録して使える代物。 で、rsyncを実行するbatファイルをpycronに登録して、毎時0分ちょうどにバックアップを取るようにしてある。

でまあそのときにコマンドプロンプトが表示されてビミョーだったので、 hideconsoleというプログラムを使って、 コマンドプロンプトを隠して実行するようにしてあったりする。

あとはまあbatファイル内でrsyncの出力をログファイルにリダイレクトするようにしたりして、 これでバッチリだーと思ってたんだけど、実際に実行してみたらPermission deniedというエラーが出たという。

でまあこれはどうも、バックアップ元と先のディレクトリのWindowsのアクセスコントロールが原因だったようで、 Explorerのフォルダオプション->表示->簡易ファイルの共有を使用するというのオフにして、 バックアップの元と先のディレクトリにちょっと危険かもしれないけどEveryoneにアクセス権限与えてやったらなんとかなった。

で、これで様子見てるんだけど、一応動いてるもよう。

まあCDリッピングした後とかはrsyncの同期に時間がかかりそうだけど、 それ以外は一分ぐらいで処理が終わるので、ちょうどいい感じ。

まあバックアップの方法はようやくこれで落ち着いたかなという感じ。 pycronを導入したおかげで他にも定期実行ができるようになったので、 他にも定期処理を登録してみるのもいいかなと思ってるところ。

まあ自分の所はこんな感じ。やっぱりバックアップは重要ですよ?