I. Giới thiệu về Shell Script
Shell Script là một ngôn ngữ lập trình kịch bản được thiết kế dành cho môi trường UNIX. Chẳng hạn bạn hay sử dụng các lệnh như cd, unzip,…tất cả lệnh đó đều là Shell script. Chẳng hạn như bạn cần backup một thư mục nào đó và chuyển file backup đến một thư mục chỉ định, đồng thời xóa các file backup cũ thì nếu bạn tự gõ các lệnh đó thủ công thì bạn sẽ cần gõ khoảng 4, 5 lần. Tuy nhiên với ngôn ngữ Shell, bạn có thể lồng các tác vụ đó vào một file Shell script để khi cần làm việc kia thì bạn chỉ cần gõ một lệnh mà bạn đã đặt ra.II. Viết Shell script để backup dữ liệu
1.Bắt đầu viết script
Đầu tiên là bạn tạo ra một file với tên backup trong thư mục /bin:vi /bin/tpbackupNhập code sau và sửa theo ý của bạn:
#! /bin/sh # ngay=$(date +"%T %d-%m-%Y") file_name="backup-$ngay" echo mysqldump --single-transaction --routines --triggers ---drop-table --extended-insert -u TaikhoanMysql -pMậtkhẩuSQL têndatabase | gzip -9 > thưmụclưu/db_$(date +"%T %d-%m-%Y").sql.gz echo echo "BACKUP CSDL VA CODE THANH CONG VAO LUC $ngay!" echo zip -r Đườngdẫnlưubackupcode/$file_name cd /Thưmụccầnbackups > /dev/null echo "Ten file CSDL backup: $file_name.sql.gz" echo "Ten file backup code: $file_name.zip" echo "File backup da duoc luu tai: Đường dẫn đến file backup" echo

#! /bin/sh # ngay=$(date +"%T %d-%m-%Y") file_name="backup-$ngay" echo mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u root -p123456 testdatabase | gzip -9 > /home/backups/db_$(date +"%T %d-%m-%Y").sql.gz echo echo "BACKUP CSDL VA CODE THANH CONG VAO LUC $ngay!" echo zip -r /home/backups/$file_name cd /home -x "*backups*" > /dev/null echo "Ten file CSDL backup: $file_name.sql.gz" echo "Ten file backup code: $file_name.zip" echo "File backup da duoc luu tai: /home/backups" echo


III. Tạo Cron Job để tự backup dữ liệu
Cron Job nghĩa là khái niệm chỉ một hành động nào đó được lặp đi lặp lại theo một chu kỳ nhất định. Ở bài này mình sẽ không giải thích rõ Cron Job là gì nên mình chỉ nói về việc sử dụng Cron Job để máy chủ tự động backup theo chu kỳ nhất định. Lưu ý: Nên sử dụng tài khoản root để tạo cron. Để tạo Cron Job, bạn hãy gõ lệnh sau:crontab -eẤn phím
iđể chuyển qua chế độ Insert và gõ: 0 00 * * 1,4 backup >> /home/backups/backups-report.txt

Ở đây, dòng crontab được hiểu như sau:
Hệ thống sẽ tự động chạy lệnh backup (Script mà chúng ta vừa viết) vào lúc 12h đêm thứ 2 và thứ 5 hàng tuần và xuất ra file log report được lưu tại:
>> /home/backups/backups-report.txt.
Để kiểm tra xem bạn đã thêm cronjob thành công hay chưa, hãy gõ lệnh xem nội dung của file /var/spool/cron/root:
cat /var/spool/cron/rootNếu nó hiện ra cái cronjob mà bạn vừa thêm thì thành công.

IV. Dùng Cron để tự động xóa file backup cũ
VPS/SERVER của bạn ít dung lượng, bạn sợ các bản backup sẽ làm full ổ đĩa. Đừng lo, hãy thêm một crontab sau để tự động xóa các file backup cũ nhé. Ở đây mình thiết lập tự động xóa các file backup cũ hơn 7 ngày vào 15h hàng ngày, mình dùng crontab như sau:15 * * * find /home/backups -type f -mtime +7 -exec rm -f {} ;Hãy chỉnh sửa /home/backups thành thư mục chứa các file backup của bạn. Chúc các bạn thành công! Nguồn Mắt Bão