Windows Server 2003 -- ชื่อเครื่อง (netbios) = "eserver"
เปิดแชร์โฟลเดอร์ d:\freebsd\backup เป็นชื่อ "freebsdbackup$" ($ นี้เอาใส่ตามท้ายชื่อที่เราตั้งตอนเปิดแชร์ จะทำให้ Share point ตรงนี้ซ่อนไว้ มองไม่เห็น แต่สามารถพิมพ์ที่ address bar เข้าใช้ได้โดยตรง) กำหนดสิทธิ์ให้ Administrator อ่านเขียนได้ และ user อื่น ๆ ไม่สามารถเข้าใช้ได้
คำสั่งที่ใช้ในการ mount โฟลเดอร์ที่แชร์จาก windows คือ mount_smbfs ครับ คำสั่งนี้เอาไว้ mount ระบบไฟล์ของ Samba ครับ ซึ่งก็สามารถใช้ mount ระบบไฟล์ของ Windows Share ได้เหมือนกัน
ก่อนอื่นให้เราทดสอบการ mount ผ่านเครือข่ายก่อนครับ เปลี่ยนสิทธิ์เป็น root ด้วย su ก่อน แล้วใช้คำสั่ง
#mount_smbfs //Administrator@eserver/freebsdbackup$ /mntสังเกตุครับ
- mount_smbfs สั่งให้ mount ระบบ samba file system
- //Administrator@eserver ให้เรากรอก ชื่อผู้ใช้ที่มีสิทธิ์@ชื่อเครื่องคอมพิวเตอร์ในระบบ Windows
- /freebsdbackup$ เป็นชื่อของ Share ที่เราได้เปิดไว้
- /mnt เป็นการกำหนดว่า จะให้ไป map ไว้ที่ไหน
password:_ให้เรากรอกรหัสผ่านลงไปครับ ตรวจสอบว่าสำเร็จไหม โดยให้เราลองเ้ข้าไปที่ /mnt ครับ แล้วทดสอบการสร้างไฟล์ หรือ Folder ดู แล้วไปดูที่เครื่องที่เราแชร์ไว้ว่ามันมาไหม ถ้าสำเร็จเราจะมาเริ่มต้นกันล่ะ อ้อ ก่อนอื่น ให้ #umount /mnt ก่อนครับ ในตัวอย่างนี้ ผมจะเก็บฐานข้อมูลของ MySql ไว้ที่ /var/db/mysql และ เก็บเว็บไซต์ต่าง ๆ ไว้ที่ /usr/local/www
ทำการสร้างไฟล์ .nsmbrc ไปไว้ที่ /root ครับ เนื้อหาในไฟล์ตามนี้ ( ~/.nsmbrc ตัว ~ หมายถึง home directory ของ user นั้น ๆ ในที่นี้คือ /root)
[default]อธิบาย
workgroup=CBANET
[ESERVER]
addr=192.168.1.3
[ESERVER:ADMINISTRATOR]
password=mypassword
- [default] --> กำหนด Section ปริยาย
- workgroup=CBANET --> ตรงนี้กรอกชื่อ Work Group ของเรา
- [ESERVER] --> Section นี้จะเป็นชื่อเครื่องที่เปิดแชร์ ในที่นี้เป็น Windows server 2003 ข้างต้น
- addr=192.168.1.3 --> Ip ของเครื่องที่เปิดแชร์
- [ESERVER:ADMINISTRATOR] --> Section นี้สำคัญครับ ชื่อเครื่อง:ชื่อ user ที่มีสิทธิ์เข้าใช้
- password=mypassword --> รหัสผ่านของ user นั้น
#chmod 600 /root/.nsmbrcหลังจากนั้น ลองรันคำสั่ง
#mount_smbfs -N //Administrator@eserver/freebsdbackup$ /mntOption -N ที่เพิ่มเข้ามาจะไปเรียกรหัสผ่านที่อยู่ในไฟล์ ~/.nsmbrc ถ้าผ่าน แสดงว่าใช้งานได้แล้ว อ้อแล้วอย่าลืม #umount /mnt ด้วยนะครับ
หลังจากนั้นเราจะมาสร้าง Script ในการ backup ไฟล์กัน โดยผมสร้างไฟล์ที่ชื่อว่า backup.sh ไว้ใน /root ครับ เนื้อหาในไฟล์ ก็ตามนี้
#! /bin/bashอธิบายนิดนึงครับ บรรทัดที่
suffix=$(date +%Y%m%d)
mount_smbfs -N //Administrator@eserver/freebsdbackup$ /mnt
tar -czf /mnt/FreeBSD/backup/"$suffix"-mysql.tar.gz /var/db/mysql/
tar -czf /mnt/FreeBSD/backup/"$suffix"-www.tar.gz /usr/local/www/
umount /mnt
- บอกว่าใช้ shell ตัวไหนในที่นี้ใช้ bash ครับ
- กำหนดตัวแปร suffix โดยให้เก็บค่า ปี(YYYY) เดือน(mm) และวันที่(dd) เช่น 20070921 จากคำสั่ง date
- ทำการ mount ไฟล์ระบบของวินโดวน์จากเครื่องชื่อ eserver ด้วยผู้ใช้ Administrator โดยใช้ password จากไฟล์ ~/.nsmbrc ไปไว้ที่ /mnt
- บีบอัดฐานข้อมูลจาก /var/db/mysql โดยใช้ tar ไปไว้ที่ /mnt/FreeBSD/backup/ โดยชื่อไฟล์จะอยู่ในรูปแบบ YYYYmmdd-mysql.tar.gz เช่น 20070921-mysql.tar.gz
- เหมือนบรรทัดที่ 4 แต่เป็นที่เก็บเว็บ (/usr/local/www)
- ไม่อธิบายได้ไหมครับ ^.^
#sh /root/backup.shแล้วลองเข้าไปดูที่ Folder ที่เราได้ แชร์ไว้ว่ามีไฟล์เพิ่มขึ้นมาไหม ถ้ามีแสดงว่า Script ผ่านแล้ว เอาหล่ะ หลังจากนั้นเราจะกำหนดให้ script นี้รันทุกวันครับโดยใช้ cron กัน ในนี้ผมใช้วิธีการแก้ไขไฟล์ /etc/crontab เพิ่มบรรทัด
ไฟล์ /etc/crontab จะเป็นไฟล์ตั้งเวลาการทำงานของโปรแกรมต่าง ๆ ครับ ไฟล์นี้จะเป็นไฟล์ระบบ ดังนั้นจงระวังในการแก้ไขครับ อธิบายนิดหนึ่งสำหรับใครที่รู้เรื่อง crontab ดูบรรทัดที่เพิ่มเข้าไป จะแบ่งออกเป็น 7 ส่วนส่วนต่าง ๆ ทำงานดังนี้1 4 * * * root sh /root/backup.sh

หมายถึงให้ทำงาน ทุกวัน ที่เวลา ตี 04:01 น.
เสร็จแล้วครับ หลังจากนั้น เราก็จะมี ระบบ backup ที่สมบูรณ์แบบ หุหุ เวอร์ไปครับ
1 ความคิดเห็น:
ง่าย ๆ กว่านั้นก็มีน้อ...
เอา script ทั้งหมดมาเขียนใน contrab เลยก็ได้น้อ ไม่ต้อง bush ให้ยุ่ง เด้อ...
แสดงความคิดเห็น