rsyncとcronのおぼえがき その1

最近,自分のローカルサーバーからリモートサーバーにデータを自動バックアップすることになりました. 色々やり方があるみたいなのですが,その辺りはあまり詳しくないのでとりあえずググって出てきたrsyncとcronで試してみているところです. 次の作業までに作業内容を忘れると思うのでメモ程度にまとめました.

環境

ローカル,リモート共にCentOS

主な作業の参考サイト

主な作業過程は下のページを参考に差分だけした.ただし,参考サイトではリモートからローカルにデータを移行しているので,ローカルからリモートに移行する内容に書き換える必要があった.また,これらの作業内容は,後々shellに書いてcronで定期的に実行できるようにする. qiita.com

使うもの

rsync

コピー元とコピー先のディレクトリでデータを同期させるときに使うコマンド. rsync でディレクトリの同期(バックアップ) - maruko2 Note.

cron

ユーザーが指定した時刻に指定されたコマンドを実行するデーモンプロセス.指定時刻はサーバーでの負荷軽減のために他のコマンドの実行時刻を丸かぶりしないように設定する方が良い(らしい). cronの設定・実行 | WEBサービス創造記

作業中のメモ

sshで移動させたい時は下のような記述方法でポート指定を行う. rsync -e “ssh -p (ポート番号)” ・rsyncを実行する時は,コピー元でもコピー先でもテスト用のディレクトリを作成して,そのディレクトリを用いてコマンドを試す. ・第二層以下のディレクトリ及びファイルのパーミッション再帰的に書き直す必要性がある. いつまでもハマるrsyncのメモ | OpenGroove

問題とその解決方法

・二層以下のデータを同じサーバー内で移行させられなかった. →パーミッションの問題だったので,sudoをつけて実行してみたら通った.shellに書くときにsudo使うのはいまいちなので,chmodで再帰的に書き直すのがいいかなと考えている. ・リモートのデータをもらう側のコピー先ディレクトリの権限の問題で,第二層以下のディレクトリが作成できなかった. →コピー先ディレクトリの持ち主をrsyncの実行時に指定したユーザーに書き換えた.