ftp database อัตโนมัติ ทุก ๆ วัน โดยที่เราไม่ต้องมาสั่งงาน จะเป็นการ ftp ข้อมูลจาก freebsd ไปยัง freebsd อีกตัวหนึ่ง เพื่อเอาไว้ดึง Report
1. gen rsa key ขึ้นมา เพื่อเอา public key ไปไว้ในเครื่องที่เราต้องการจะ remote ไปนั่นเอง
mirror# 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:
1f:f8:e9:29:9f:a1:33:1b:be:5f:62:90:81:0d:28:6c root@mirror.bansang.ath.cx
The key's randomart image is:
+--[ RSA 2048]----+
| . .. |
| E . + |
| . . . o |
| + |
| S . |
| + o |
| . B . |
| .+= * |
| =O* |
+-----------------+
mirror# 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:
1f:f8:e9:29:9f:a1:33:1b:be:5f:62:90:81:0d:28:6c root@mirror.bansang.ath.cx
The key's randomart image is:
+--[ RSA 2048]----+
| . .. |
| E . + |
| . . . o |
| + |
| S . |
| + o |
| . B . |
| .+= * |
| =O* |
+-----------------+
2. เราจะได้ไฟล์ id_rsa และ id_rsa.pub อยู่ที่ /root/.ssh
mirror# cd .ssh/
mirror# ls
id_rsa id_rsa.pub known_hosts
mirror# cd .ssh/
mirror# ls
id_rsa id_rsa.pub known_hosts
3.copy id_rsa.pub ที่ได้ไปไว้ ใน server ปลายทาง ที่เราจะ remote ไปหา
mirror# scp id_rsa.pub root@192.168.254.4:~/.ssh/authorized_keys
Password:
id_rsa.pub 100% 408 0.4KB/s 00:00
mirror#
Password:
id_rsa.pub 100% 408 0.4KB/s 00:00
mirror#
เรียบร้อย
4. สร้าง script
mirror# cd /home
mirror# pico sftpbackup.sh
mirror# pico sftpbackup.sh
#!/bin/sh
cd /home
HOST='192.168.254.4'
USER='kom'
PASSWD='ไม่บอก'
FILE='/usr/home/postgres_backup/Daily/*'
sftp $HOST <
mget $FILE
quit
END_S
exit 0
mirror# chmod 777 sftpbackup.sh
mirror# ./sftpbackup.sh
Connecting to 192.168.254.4...
sftp>
sftp>
sftp> mget /usr/home/postgres_backup/Daily/*
Fetching /usr/home/postgres_backup/Daily/bansang39.sql to bansang39.sql
/usr/home/postgres_backup/Daily/bansang39.sql 3% 72MB 32.8MB/s 01:11 ETA
Connecting to 192.168.254.4...
sftp>
sftp>
sftp> mget /usr/home/postgres_backup/Daily/*
Fetching /usr/home/postgres_backup/Daily/bansang39.sql to bansang39.sql
/usr/home/postgres_backup/Daily/bansang39.sql 3% 72MB 32.8MB/s 01:11 ETA
เรียบร้อย แค่นี้ก็จะได้ databse.sql มาไว้ที่เครื่อง
5. สร้าง script เพื่อ create database อัตโนมัติ
mirror# pico restore.sh
#!/bin/sh
#su postgres
dropdb hos_v39
createdb -E UNICODE hos_v39
psql hos_v39< /home/bansang39.sql
#su postgres
dropdb hos_v39
createdb -E UNICODE hos_v39
psql hos_v39< /home/bansang39.sql
rm /home/bansang39.sql
exit
exit
6.กำหนดให้ sftpbackup.sh และ restore.sh ทำงานเองโดยเพิ่มเข้าไปใน crontab ของ root และ postgres
# crontab -e
เพิ่มบรรทัดต่อไปนี้เข้าไป
@daily /home/sftpbackup.sh > /dev/null #daily backup
save และออกจาก crontab
ทีนี้ทุกๆ เที่ยงคืนเครื่องของเราก็จะทำการ backup ข้อมูลเองโดยอัตโนมัติครับ
No comments:
Post a Comment