สุดท้ายเป็นการเก็บกวาดเล็กน้อย
งานที่ทำคือ...
จุดประสงค์คือการรวมศูนย์การใช้งาน cron แบบรายวัน ไว้ที่ไฟล์นี้ไฟล์เดียว
ยกเลิก cron ของ apt-proxy
# crontab -e
... #5 0 * * * /etc/init.d/apt-proxy restart >&2 ...
เปลี่ยนมาบรรจุคำสั่งใน d.cron-daily แทน
# vi /usr/local/sbin/d.cron-daily
#!/bin/bash #-----RESTART APT-PROXY------------------------------------ /etc/init.d/apt-proxy restart #-----BACKUP DB-------------------------------------------- ROOT="/sys1/sysb/backupdb" ...
แม้จะนอกรายการไปนิดนึง แต่ก็ขอบันทึกไว้เพื่อให้สมบูรณ์อย่างที่ตั้งใจครับ
จะสมมุติว่ามีเครื่องเซิร์ฟเวอร์สำรองอยู่ข้างหลังเซิร์ฟเวอร์เครื่องนี้อีกเครื่องนึง เพื่อที่จะทำ rsync มาคัดลอกข้อมูลในไดเรกทอรี่ /sys1/sysb ทั้งหมดไปเก็บไว้ ถ้าหากเกิดความเสียหายรุนแรงที่เครื่อง server1 นี้ จะได้มีข้อมูลมาสำรองกลับได้
สมมุติว่าชื่อ server2.example.com ไอพี 192.168.1.2
งานนี้จะทำที่เครื่อง server2 ทั้งหมด
ติดตั้ง rsync และ ssh
# aptitude install rsync ssh
สร้างกุญแจให้กับ ssh
# ssh-keygen -t dsa
Enter file in which to save the key (/root/.ssh/id_dsa): <<<--- [ENTER] Enter passphrase (empty for no passphrase): <<<--- [ENTER] Enter same passphrase again: <<<--- [ENTER] Your identification has been saved in /root/.ssh/id_dsa. Your public key has been saved in /home/user1/.ssh/id_dsa.pub. The key fingerprint is: cd:43:9b:3a:b1:60:01:ae:a2:0e:f8:00:21:8c:d8:f0 root@server2
คัดลอกกุญแจไปยัง server1
# ssh-copy-id -i /root/.ssh/id_dsa.pub root@server1
ต่อเข้า server1 เพื่อบันทึกรหัสผ่าน 1 ครั้ง
# ssh server1 -l root
The authenticity of host 'server1 (192.168.1.1)' can't be established. RSA key fingerprint is 1a:d1:12:f4:bd:d4:4c:11:93:55:9c:75:a7:eb:7d:ae. Are you sure you want to continue connecting (yes/no)? <<<--- yes Warning: Permanently added 'server1,192.168.1.1' (RSA) to the list of known hosts. root@server1's password: <<<--- ROOT@SERVER1-PASSWORD Now try logging into the machine, with "ssh 'root@server1'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. #
ต่อเข้าจริงอีก 1 ครั้ง
# ssh root@server1
Last login: Mon Mar 3 21:02:28 2008 from work1.example.com Linux server1 2.6.18 #1 Mon Mar 3 13:02:29 ICT 2008 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. No mail. # exit
(***อย่าลืม exit ออกจาก server1 ด้วยนะครับ***)
เสร็จเรื่อง ssh
ต่อเรื่องทำ rsync
สร้างไดเรคทอรี่มารองรับไฟล์จาก server1 สมมุติว่าให้ชื่อ /sys2/server1-sysb
# mkdir -p /sys2/server1-sysb
สร้างไฟล์ d.cron-rsync-server1 ใน /usr/local/sbin
# vi /usr/local/sbin/d.cron-rsync-server1
#!/bin/bash # IF sys2 IS SEPARATE, MOUNT /sys2 FIRST #mount /sys2 # RSYNC FROM server1:/sys1/sysb TO /sys2/server1-sysb rsync -aq --delete -e "ssh -i /root/.ssh/id_dsa" root@server1.example.com:/sys1/sysb/ /sys2/server1-sysb/ # IF sys2 IS SEPARATE, MOUNT /sys2 FIRST #umount /sys2
ทำให้รันได้
# chmod 700 /usr/local/sbin/d.cron-rsync-server1
ตั้ง cron ให้รันตอนตี 1
# crontab -e
... #BACKUP server1:/sys1/sysb TO /sys2/server1-sysb DAILY 20 1 * * * /usr/local/sbin/d.cron-rsync-server1 ...
เสร็จหมดแล้ว