วันจันทร์ที่ 26 พฤศจิกายน พ.ศ. 2555

Zimbra Backup / Restore

Zimbra Backup / Restore  จากประสบการณ์อันน้อยนิด ^^


#สั่ง service zimbra ให้หยุด
service zimbra stop

# get ค่าของ today ให้เป็น วันที่_เวลา
today=$(date '+%y%m%d_%H%M%S')




#สร้าง Folder ตามด้วยค่าของ today ที่ getมาได้
mkdir /mnt/bk/mail/"$today"

cd /mnt/bk/mail/"$today"


#tar ข้อมูลของ /opt/zimbra/  เข้ามาเก็บไว้ยังปลายทาง
tar cvf backup_mail-"$today".tar /opt/zimbra/
#Run service ต่อ
service zimbra start

* ถ้าเราใช้การ cp /opt/zimbra/ ไว้ก่อนคำสั่งที่จะได้ service หยุด แล้วใช้ rsync แทนจะทำให้ใช้เวลาน้อยกว่า


การ Restore
chown -R zimbra:zimbra /opt/zimbra/st*

***************************************************************

Zimbra backup

The Following code is an example for Zimbra backup script, from The Jonas tutorial video.
Code is below – copy and save into an empty file and adjust accordingly:
!/bin/bash
service zimbra stop
cp -rp /opt/zimbra /location_of_your_backup_folder/`date +%y%m%d`/
service zimbra start
For the permissions, right click on file and set permissions to allow executing.
Then if you need to restore your zimbra E-mail server from backup, stop the zimbra service, move your zimbra backup, rename it to zimbra, and place it in the original location as follows: /opt/zimbra
Then run this permission code: chown -R zimbra:zimbra /opt/zimbra/st*
Then start-up the zimbra service.
I hope this helps ~thejonas.net


Credit  http://www.thejonas.net


rsync

rsync


หากต้องการสำรองข้อมูลใน /home ลงใน usb harddisk หรือ harddisk อีกก้อน สามารถใช้คำสั่งดังนี้

#rsync -rvl /home /mnt/sdb1/backup 

คำสั่งข้างต้นจะทำการสำรองข้อมูลจาก /home ไปยัง /mnt/sdb1/backup
หากมีไฟล์ที่อยู่ใน /home ถูกลบไป ไฟลืที่ทำการสำรองใน /mnt/sdb1/backup จะไม่ถูกลบไปด้วย หากต้องการให้การสำรอง sync เหมือนกันกับ /home ตลอดให้เพิ่ม

--progress --update --delete เข้าไปด้วยดังนี้

#rsync -rvl --progress --update --delete /home /mnt/sdb1/backup 

***********************************************************************

rsync -av --delete ~/Music /media/disk3/
rsync -av --delete ~/Music/ /media/disk3/

สองคำสั่งนี้ต่างกันแค่ Music กับ Music/
คำสั่งแรก คือ การ Backup โฟลเดอร์ Music ใน Home directory ไปที่ฮาร์ดดิสก์อีกลูก โดยสร้างโฟลเดอร์ Music ขึ้นมาใหม่ในฮาร์ดดิสก์ลูกนั้นหรือถ้ามีโฟลเดอร์ที่ชื่อ Music ในฮาร์ดดิสก์ลูกนั้นอยู่แล้วก็จะ copy เอาไฟล์ใหม่ๆไปแทนที่ และ ลบไฟล์ที่ไม่มีชื่อตรงกับไฟล์ที่อยู่ในโฟลเดอร์ Music ใน Home directory ทิ้ง
คำสั่งที่สอง คือ การ Backup ไฟล์และซับไดเรกทอรีที่อยู่ในโฟลเดอร์ Music ใน Home directory ไปที่ฮาร์ดดิสก์อีกลูก เพราะฉะนั้นทุกสิ่งในโฟลเดอร์ Music ก็จะไปอยู่แทนที่ไฟล์เดิมในฮาร์ดดิสก์เลย ไม่ได้สร้างโฟลเดอร์ขึ้นมาใหม่ และทุกสิ่งทุกอย่างที่ไม่มีชื่อตรงกับไฟล์ที่อยู่ในโฟลเดอร์ Music ใน Home directory ก็จะถูกลบทิ้ง





วันจันทร์ที่ 19 พฤศจิกายน พ.ศ. 2555

Crontab on Linux

ใช้คำสั่ง crontab -e ตั้งเวลาอัตโนมัติบน linux


มี 2 วิธี(เท่าที่ผมทราบ)
1. เขียนไปตรงๆ บน crontab -e

นาที ชั่วโมง วัน เดือน วันของสัปดาห์  mysqldump -u root -pรหัสผ่านฐานข้อมูล --all-database --lock-all-table | bzip2 -c > /home/backup/db-backup.sql.bz2 
 --------------------------------------------------------------------------------------------------------

2. เขียนบนไฟล์ .sh เช่น backup.sh
nano backup.sh

today=$(date '+%y%m%d_%H%M%S') => สร้างตัวแปรวันที่
mkdir /home/backup =>สร้างโฟลเดอร์ชื่อ backup ไว้ที่ /home
mkdir /home/backup/"$today" =>สร้างโฟลเดอร์ชื่อวัน_เวลาปัจจุบันไว้ในโฟล์เดอร์ backup
cd /home/backup/"$today" =>เข้าโฟลเดอร์  /home/backup/โฟลเดอร์ชื่อวัน_เวลาปัจจุบัน
mysqldump -u root -pรหัสผ่านฐานข้อมูล --all-database --lock-all-table | bzip2 -c > db-backup"$today".sql.bz2 =>คำสั่งสำรองฐานข้อมูล พร้อมทั้งบีบอัดไฟล์
tar czf www-backup"$today".tar.gz /var/www/ =>สำรองโฟลเดอร์ /var/www พร้อมทั้งบีบอัดไฟล์

จากนั้น
crontab -e (อย่าลืม /bin/bash ไว้หน้าคำสั่งที่เรียกใช้สคริปด้วย)
นาที ชั่วโมง วัน เดือน วันของสัปดาห์   /bin/bash /home/backup.sh

ที่มา: 
- http://www.itmanage.info/technology/linux/ubuntu/crontab/crontab_howto.html
- http://www.narisa.com/forums/index.php?app=blog&module=display&section=blog&blogid=17&showentry=467
- http://www.thaiadmin.org/board/index.php?topic=156939.new#new
- http://forum.ubuntuclub.com/forum/topic,24391.0.html

วันพฤหัสบดีที่ 15 พฤศจิกายน พ.ศ. 2555

CentOS gateway ip routering

CentOS gateway ip routering


การใช้ Linux ในตระกูลของ Redhat คือ Fedora core , Linux Tle , SIS Linux การทำเป็น Gateway นั้นเซ็ตไม่ค่อยยาก เซ็ตเพียงไม่กี่บรรทัดก็ใช้ได้แล้ว

  1. echo 1 > proc/sys/net/ipv4/ip_forward
  2. iptables -t nat -A POSTROUTING -s (ip,network ex. 192.168.1.0/24) -o eth0 -j MASQUERADE
  3. service iptables save บันทึกค่า iptables ไว้หน่อย
  4. แก้ไขค่า /etc/sysctl.conf จาก net.ipv4.ip_forward=0 เปลี่ยนค่าให้ =1 แทน
  5. service iptables restart รีสตาร์ท iptables ใหม่อีกครั้ง
เท่านี้ก็ได้ Gateway เรียบร้อยแล้ว ชี้ค่า Gateway มายังหมายเลข ip ของเครื่องแม่ข่ายนี้ก็เป็นอันใช้ได้