Linux: Backup Your Website Automatically

Linux: Backup Your Website Automatically

ห่างหายไปนานไม่ได้อัพเดด blog เรื่อง Linux กันเลยวันนี้มาอัพเดด blog เรื่องการ backup ข้อมูลของ server กันดีกว่าครับ เพื่อนๆหลายคนอาจจะมีการ backup ข้อมูลอยู่แล้วลองหันมาใช้ Shell ตัวนี้ไปรัน cron ดูครับเราสามารถ ftp ไฟล์ที่ backup ไปไว้ที่อื่นได้ในกรณีเครื่องเรานั้นเกิด system พังอย่างไม่ทันตั้งตัวครับ ในการ backup ข้อมูลนั้นเขียน Shell ได้หลายแบบแล้วแต่สไตล์การเขียนแต่ล่ะคนนะครับแต่แบบนี้ก็ใช้ได้ผลเช่นกัน เริ่มเลยนะครับก่อนอื่นต้องทำการสร้างไฟล์ขึ้นมาก่อน แล้วก็ copy โค๊ดจากข้างล่างนี้ไปใส่ในไฟล์ที่เราสร้างขึ้นมา เช่น backup_web_gootum.sh

สร้างไฟล์เพื่อทำการรัน Crontab
#nano backup_web_gootum.sh

copy ข้อมูลส่วนนี้ลงไปในไฟล์ backup_web_gootum.sh แล้วจากนั้นก็ทำการ Save

#!/bin/sh
# This script backs up the domain.com website
# Gootum.com

#change directory into the backup location
cd /backup/path-gootum

#Backs up the website incrementally using wget into a folder of the ftp hostname
wget --output-file=logfile.log --tries=5 --passive-ftp --mirror --ftp-user=username 
--ftp-password=password ftp://ftp.yourftpsite.com

#Renames the logfile.log to logfile.log
mv "logfile.log logfile$(date +%Y%m%d%k%M).log"

เมื่อเราได้ไฟล์แล้ว backup_web_gootum.sh ก็สั่งให้มันรัน cron ตั้งการทำงานอัตโนมัติ

crontab -e

ต่อไปก็เพิ่มคำสั่งนี้เข้าไปในCrontab และ Cron จะทำตามคำสั่งที่เราได้ตั้งไว้จะทำงานทุกเที่ยงคืนที่ 12:00am

0 0 * * * shane path/to/websitebackup.sh

เพียงเท่านี้ก็เป็นอันเสร็จสิ้นวิธีการตั้ง Backup Your Website Automatically หากทำแล้วมาดูไม่มีการ backup ตามที่เขียนไว้นั้นให้ดูพวก permission ต่างๆนะครับ หากยังไม่ได้อีกก็ดู log ของการทำงาน หากยังไม่ได้อีกเลิกใช้มันลบสคริปลบCrontab ออกไปเลย

Unix Crontab Commands for Ubuntu?: http://blog.gootum.com/linux-blog/unix-crontab-commands-for-ubuntu

  • 0 0 * * * shane path/to/websitebackup.sh

    shane มันหมายถึงชื่อ user นี่นา ใส่ไปก็ error ดิ 🙂

  • Thanks for the info, sounds like a great strategy.

  • ขอบคุณครับ ขอเอาไปใช้หน่อยเพิ่งได้ vps มาใหม่ ยังทำอะไรไม่ค่อยเป็นเลย

  • Pingback: go learn web.()