Category: Other / Tags:
バックアップスクリプト
バックアップの設定フォルダ及びファイルの作成
[root@www ~]# mkdir backup
[root@www ~]# cd backup
[root@www backup]# touch backup.sh
[root@www backup]# touch exclude.txt
[root@www backup]# touch ssh-agent-env
[root@www backup]# chmod 755 backup.sh
[root@www backup]# ls -al合計 36
drwxr-xr-x 2 root root 4096 5月 15 10:55 .
drwxr-x— 6 root root 4096 5月 15 10:55 ..
-rwxr-xr-x 1 root root 0 5月 15 10:55 backup.sh
-rw-r–r– 1 root root 0 5月 15 10:52 exclude.txt
-rw-r–r– 1 root root 134 5月 15 11:07 ssh-agent-env
バックアップスクリプトの作成
www.pictnotes.jp の /var/www と /ect を /var/backup に保存して、日付をつけて
圧縮(tar.gz化)、圧縮されたファイルを、nas.pictnotes.jp の /backup1/www.pictnotes.jp/
へコピー
[root@www backup]# vi backup.sh
#!/bin/bash
#
# www.pictnotes.jp to nas.pictnotes.jp copy script
#
#
# backup file name
BACKUP_NAME=’www.pictnotes.jp’
# backup local path
BACKUP_PATH=’/var/backup’
# rsync LOCAL
RSYNC_LOCAL=’/usr/bin/rsync -avz –delete’
# tar command
TAR=’/bin/tar cvfz’
# read sshenv
SSH_ENV=’/root/backup/ssh-agent-env’
# rsync command used to nas.pictnotes.jp
RSYNC=”/usr/bin/rsync -avz -e ssh”
# rsync TO HOST
TO=’backup@nas.pictnotes.jp:/backup1/www.pictnotes.jp/’
# rm command
RM=’/bin/rm -r’
#
## END
# make backup file name
date=date +”%Y%m%d”
BACKUP_DIR=”${BACKUP_PATH}/${BACKUP_NAME}”
BACKUP_TAR_NAME=”${BACKUP_PATH}/${BACKUP_NAME}-${date}.tar.gz”
# rsync(copy) start to local
#echo “${RSYNC_LOCAL} /var/www ${BACKUP_DIR}/”
${RSYNC_LOCAL} /var/www “${BACKUP_DIR}/” 2>&1
#echo “${RSYNC_LOCAL} /etc ${BACKUP_DIR}/”
${RSYNC_LOCAL} /etc “${BACKUP_DIR}/” 2>&1
# tar start
#echo “${TAR} ${BACKUP_TAR_NAME} ${BACKUP_DIR}”
${TAR} ${BACKUP_TAR_NAME} ${BACKUP_DIR}
# read sshenv
source ${SSH_ENV}
# rsync(copy) start to oriena.jp
#echo “${RSYNC} ${BACKUP_TAR_NAME} ${TO}”
${RSYNC} ${BACKUP_TAR_NAME} ${TO} 2>&1
# rm
#echo “${RM} ${BACKUP_TAR_NAME}”
${RM} ${BACKUP_TAR_NAME}
#finish
ローカル(www.pictnotes.jp)のバックアップフォルダを作成
[root@www backup]# mkdir /var/backup
[root@www backup]# mkdir /var/backup/www.pictnotes.jp
nas.pictnotes.jpへの接続用SSHを作成(秘密鍵、共通鍵の作成)
[root@www backup]# cd
[root@www ~]# cd .ssh/
[root@www .ssh]# ls -al合計 24
drwx—— 2 root root 4096 4月 16 16:32 .
drwxr-x— 6 root root 4096 5月 15 10:55 ..
-rw-r–r– 1 root root 1258 5月 15 10:57 known_hosts[root@www .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
21:1d:86:10:b4:43:bb:26:2d:1b:7f:a8:89:8c:a4:c4 root@www.pictnotes.jp[root@www .ssh]# ls -al
合計 40
drwx—— 2 root root 4096 5月 15 11:00 .
drwxr-x— 6 root root 4096 5月 15 10:55 ..
-rw——- 1 root root 951 5月 15 11:02 id_rsa
-rw-r–r– 1 root root 228 5月 15 11:02 id_rsa.pub
-rw-r–r– 1 root root 1258 5月 15 10:57 known_hosts[root@www .ssh]# cat id_rsa.pub
ssh-rsa XX(省略)XXXXX= root@www.pictnotes.jp
nas.pictnotes.jp の受け取りユーザー(backup)に、root@www.pictnotes.jp共通鍵を登録
[root@nas backup1]# cd /home/backup/.ssh/
[root@nas .ssh]# vi authorized_keys
(ここで追記)
接続できるかテスト
[root@www .ssh]# ssh backup@192.168.100.1
Enter passphrase for key ‘/root/.ssh/id_rsa’: #まだ、パスフレーズを聞かれます。
Last login: Tue May 15 10:22:34 2007 from 192.168.100.94
自動ログインの設定、 ssh-agent の起動
[root@www ~]# cd /root/backup/
[root@www backup]# ssh-agent > ssh-agent-env
[root@www backup]# cat ssh-agent-envSSH_AUTH_SOCK=/tmp/ssh-qyVRM31132/agent.31132; export SSH_AUTH_SOCK;
“SSH_AGENT_PID” =31133; export “SSH_AGENT_PID” ;
echo Agent pid 31133;[root@www backup]# source ssh-agent-env
Agent pid 31133
[root@www backup]# ssh-add
Enter passphrase for /root/.ssh/id_rsa: #パスフレーズを登録
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
自動ログインの確認
[root@www backup]# ssh backup@192.168.100.1
Last login: Tue May 15 11:06:50 2007 from 192.168.100.71
(パスワード無しでログイン)
バックアップスクリプトを走らせて、最終チェック
[root@www backup]# ./backup.sh
きちんと動けばcronに設定して終了 毎日2時40分に起動
[root@www backup]# crontab -e
#2007.05.15 kiyosue written
40 2 * * * /root/backup/backup.sh