Tuesday, September 5, 2017

ການສຳຮອງຖານຂໍ້ມູນ mysql ແລ້ວໄປເກັບໄວ້ທາງ ftp

ບົດຄວາມນີ້ ແມ່ນ ການຂຽນສະຄຣິບ ໃນ linux ສຳລັບການສຳຮອງຖານຂໍ້ມູນຂອງ mysql ແລ້ວ ອັບໂຫລດໄປດ້ວຍ ftp ໂດຍການໃຊ້ cURL.
ເຮົາມາເລີ່ມກັນເລີຍ:
ກ່ອນອື່ນສ້າງໄຟລ db-backup.sh

vi /root/db-backup.sh
chmod +x /root/db-backup.sh

ຈາກນັ້ນໃຫ້ສຳເນົາລະຫັດໂຄດ ລຸ່ມນີ້

#!/bin/sh
# Set up all the variables
# Database name
databases="db1 db2"
# Current date
date=$(date +"%Y-%m-%d")
# Mysql user, password
user=username
pass=password
# FTP user, password, and host (you can specify the port also eg. ftp.example.com:2002)
ftpUser=username
ftpPass=password
ftpHost=ftp.example.com
ftpFolder="backup/"
# Local backup folder
bPath="/var/backups/databases"
# Create the backup dir if doesn't exist
if [ ! -d $bPath ]; then
    mkdir -p $bPath
fi
# Delete backup file older than 3 days (local backup)
find $bPath/*.sql.gz -mtime +3 -exec rm {} ;
# Backup the database
for db in $databases; do
    # Database backup name
    file=$db-$date.sql.gz
    # Do the mysql database backup (mysqldump)
    echo "Starting to dump the $db database as $file"
    mysqldump --user=$user --password=$pass $db | gzip -9 > $bPath/$file
    # Upload it via curl
    echo "Starting to upload the $file to FTP server"
    curl --ftp-create-dirs -T $bPath/$file -u $ftpUser:$ftpPass ftp://$ftpHost/$ftpFolder
done
# Clear the cache (not work on OpenVZ)
free && sync && echo 3 > /proc/sys/vm/drop_caches && echo "" && free


ຕໍ່ໄປແມ່ນສ້າງ cron ເພື່ອໃຫ້ໂປຣແກຣມແລ່ນແບບ ອົດຕະໂນມັດ ແລະ ໃຫ້ມັນແລ່ນ ເວລາ 2 ມ ເຊົ້າ
ໂດຍໃຊ້ຄຳສັ່ງ:

crontab -e

ແລ້ວຂຽນຄຳສັ່ງນີ້ລົງໄປແລ້ວບັນທຶກ

00 02 * * * /root/db-backup.sh

Subscribe

  • RSS Atom

ອອນລາຍ: 1 | ມື້ນີ້: 13 | ວານນີ້: 25 | ທິດນີ້: 93 | ເດືອນນີ້: 872 | ປີນີ້: 11832 | ລວມ: 78935