คำสั่ง สำรองข้อมูล DB , File ด้วย lftp

อันดับแรกต้องติดตั้ง lftp ก่อน

yum install lftp -y

 

การสำรอง DB

เข้า Path ที่จะเก็บคำสั่ง ผมเลือก /root

สร้างโฟลเดอร์ก่อนเลย

mkdir BK

เข้าไปในโฟลเดอร์ที่เราสร้างไว้

cd /root/BK

สร้างไฟล์ backup.log และ backup-file.log

สร้างไฟล์ .sh

nano backup.sh

ภายในไฟล์  ซึ่งจะสำรองไปไว้ใน QNAP โดยไปสร้าง USername Password Folder ไว้ก่อน

#!/bin/bash
cd /root/BK

echo “Start Backup” >> backup.log
date >> backup.log

mysqldump –default-character-set=utf8 -uroot -pPASSWORD DB_NAME> DB_NAME.sql
sleep 5

name=$(date ‘+%y-%m-%d’)
tar -czvf DB_NAME-$name.sql.tar.gz DB_NAME.sql
sleep 5

lftp -u user,password -e “cd user/Folder;put /root/BK/DB_NAME-$name.sql.tar.gz;quit” ip address
sleep 5

rm -rf /root/BK/DB_NAME.sql
rm -rf /root/BK/DB_NAME-$name.sql.tar.gz

echo “FTP Backup” >> backup.log
date >> backup.log

curl -X POST -H ‘Authorization: Bearer token-line’ -F ‘message=Hi Admin! Server Backup Database Centerpoint(DB_NAME.sql) to Storage Complete.’ https://notify-api.line.me/api/notify > /dev/null 2>&1

 

 

การสำรอง File

สร้างไฟล์ .sh

nano backup-file.sh

ภายในไฟล์

#!/bin/bash
cd /root/BK

echo “Start Backup” >> backup-file.log
date >> backup-file.log

name=$(date ‘+%y-%m-%d’)

#FTP
cd /var/www
tar -czf html$name.tar.gz html

sleep 5

lftp -u user,password -e “cd user/Folder;put /root/BK/DB_NAME-$name.sql.tar.gz;quit” ip address
sleep 5

rm -rf /var/www/html$name.tar.gz

curl -X POST -H ‘Authorization: Bearer token-line’ -F ‘message=Hi Admin! Server Backup WEB to Storage Complete.’ https://notify-api.line.me/api/notify > /dev/null 2>&1

 

เสร็จแล้วก็ chmod กันก่อนใช้

chmod +x backup.sh
chmod +x backup-file.sh

ลอง ls -l ดู ไฟล์ทั้งสองจะเป็นสีเขียวก็สามารถทำงานได้ปกติ

crontab -e

5 5 * * * /bin/sh /root/BK/backup.sh

5 5 * * * /bin/sh /root/BK/backup-file.sh

ตั้งเวลาให้ทำงานทุกวัน เวลา ตี 5