上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




登場するサーバは以下の2台
クライアント:ファイルをrsyncでサーバへ送る側
サーバ:クライアントよりrsyncで送られたファイルを受信する側


今回は受信する側のアカウントをrsyncuserとして記述しています。
適宜ユーザを読み替えて作業をしてください。

rootユーザでサーバへログイン(必須ではありません)

まず、サーバ側へrsyncで利用するアカウントを作成する

# useradd rsyncuser

.sshディレクトリの作成

# cd /home/rsyncuser

# mkdir .ssh


ルートで作成したので、ディレクトリのオーナーの変更

# chown rsyncuser.rsyncuser .ssh

他のユーザで読み書きが出来ないように.sshディレクトリのパーミッションの変更

# chmod 700 .ssh


authorized_keys ファイルが存在しない場合、ファイルを作成しておく。

# touch authorized_keys

ファイルオーナーの変更

# chown rsyncuser.rsyncuser authorized_keys

他のユーザで読み書きが出来ないようにパーミッションの変更

# chmod 600 authorized_keys


ここからクライアント側での作業。

rsyncを利用するアカウントでクライアントにログインする。

ユーザのホームディレクトリに移動

$ cd ~(チルダ)

.ssh ディレクトリがない場合、ディレクトリを作成する

$ mkdir .ssh

ディレクトリのパーミッションの変更

$ chmod 700 .ssh

.sshディレクトリ内に移動

$ cd .ssh

RSA鍵の作成を行う。
バッチで利用するため、パスフレーズ無しで作成する

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/{user}/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):  <= パスワードは入力しない
Enter same passphrase again:  <= パスワードは入力しない
Your identification has been saved in /{user}/.ssh/id_rsa.
Your public key has been saved in /{user}/.ssh/id_rsa.pub.
The key fingerprint is:
d8:aa:8f:d1:f8:aa:49:fd:aa:a7:f5:da:aa:18:21:ea {user}@example.com


以上のような感じに入力し、秘密鍵[id_rsa], 公開鍵[id_rsa.pub] を作成する。

作成した公開鍵をサーバ側へ送信する

$ scp /{user}/.ssh/id_rsa.pub {user}@192.168.XXX.XXX:~(チルダ)


ここからサーバ側での作業

rsyncuserでログインを行い、公開鍵を登録する

$ cat id_rsa.pub >> /home/rsyncuser/.ssh/authorized_keys


これで鍵の登録は完了

ここからsshd_configの修正を行う。

サーバ側でrootアカウントにユーザを変更し、sshd_confの以下を修正する

# vi /etc/ssh/sshd_conf

---
Authentication no
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

---

変更したらsshdを再起動する

# /etc/init.d/sshd restart


これで設定が全て完了、クライアントから接続のテストを行う

クライアント側にキーを作成したアカウントでログインを実施
(.sshディレクトリにid_rsaがあるアカウント)

sshの接続を確認する

$ ssh rsyncuser@192.168.XXX.XXX

これで接続ができれば鍵を利用したログインの設定が完了。

あとは以下のようなスクリプトを作成し、実行権限を付けてcronで実行すればOKです。

(バックアップ先のディレクトリの作成や、cronで実行する際のユーザに注意!)

---
#!/bin/sh
RSYNC='rsync -avvz'
HOST='rsyncuser@192.168.XXX.XXX'

$RSYNC $HOST:/var/log/httpd/ /home/rsyncuser/log/httpd
$RSYNC $HOST:/var/log/mysql/ /home/rsyncuser/log/mysql

---






スポンサーサイト

LinuxのDateコマンドは○日先の日付けや、△日前の日付等を取得する事ができます。

3日前の日付を取得する場合は

$ date --date '3 days ago'


4日後の日付を取得する場合には

$ date --date '4 days'

てな具合に記述します。

日付指定の部分のシングルクォートはダブルクォートにしても問題なく動作します。

また、引数として、+(プラス)のあとにフォーマットを記述するとその形式で出力することができます。

$ date --date '4 days' +'%y-%m-%d'

こんな感じだと出力結果は

10-01-10

のような感じになります。







RECENT ENTRYS

RECENT COMMENTS

RECENT TRACKBACKS

サイト内検索

カスタム検索

カテゴリー

月別アーカイブ

このブログについて

ネットワーク構築や、サーバ構築、Javaプログラムを生業としていく中で気付いたことをブログに綴って行きます。

Sponsored Link

カウンター

リンク

RSSフィード

全記事リンク

なかのひと


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。