اسکریپت تهیه نسخه پشتیبان از فایل‌ها و بانک‌های اطلاعاتی در SSH

اسکریپت تهیه نسخه پشتیبان از فایل‌ها و بانک‌های اطلاعاتی در SSH

1.4k

بار دیگر قصد داریم تا در زاگریو ، به بررسی یکی از مهم‌ترین مباحث مربوط به مدیریت سرور ، با نام اسکریپت تهیه نسخه پشتیبان از فایل‌ها و بانک‌های اطلاعاتی در SSH، بپردازیم. در انتها، با اجرای دستورات زیر می‌توانید نسخه پشتیبان از فایل و بانک اطلاعاتی در SSH تهییه کنید.

اسکریپت تهیه نسخه پشتیبان از فایل‌ها و بانک‌های اطلاعاتی در SSH

در سرورهای لینوکسی (هاست لینوکس) می‌توانید با استفاده از این اسکریپت در SSH به اهداف ذیل دست پیدا کنید:

  • تهیه نسخه پشتیبان از پوشه‌ها و فایل‌های مورد نظر
  • امکان عدم تهیه نسخه پشتیبان از پوشه‌هایی مشخص درون فایل‌های فوق
  • فشرده‌سازی نسخه پشتیبان
  • تغییر نام فایل نسخه پشتیبان به همراه متغیرهایی همچون تاریخ و ساعت
  • تهیه نسخه پشتیبان از بانک اطلاعاتی MySQL
  • ارسال نسخه پشتیبان به سرور FTP

ابتدا فایل اجرایی را با دستور زیر ایجاد نمائید.

[root@zagrio ~]# nano backup.sh

محتوای فایل: (موارد قرمز رنگ می بایست مطابق نیاز اصلاح شود)

#!/bin/sh
#Path Configuration
export BACKUP_PATH='/root/backup/'
export FILES_BACKUP_FILENAME='files.tar.gz'
export DATABASE_BACKUP_FILENAME='database.sql.gz'
export PATH_TO_BACKUP='/path/to/backup'
export PATH_TO_EXCLUDE1='/path/to/backup/excludethis1'
export PATH_TO_EXCLUDE2='/path/to/backup/excludethis2'
#Database Configuration
export DATABASE_USERNAME='username'
export DATABASE_PASSWORD='password'
export DATABASE_HOST='localhost'
export DATABASE_NAME='database'
#FTP Configuration
export FTP_HOST='ftp.host.com'
export FTP_USERNAME='username'
export FTP_USERNAME='password'
#Create Backup Directory
mkdir $BACKUP_PATH
#Compress files / define any excluded folder
tar -cjvf $BACKUP_PATH$DATABASE_BACKUP_FILENAME $PATH_TO_BACKUP --exclude $PATH_TO_EXCLUDE1 --exclude $PATH_TO_EXCLUDE2
#Create MySQL Backup
mysqldump -u $DATABASE_USERNAME -h $DATABASE_HOST -p$DATABASE_PASSWORD $DATABASE_NAME | gzip -9 > $BACKUP_PATH$DATABASE_BACKUP_FILENAME
#Get Date
MY_DATE=date +%Y%m%d
export MY_DATE
#Transfer Backups to FTP Host
ftp -n -i $FTP_HOST <<END_SCRIPT
user ${FTP_USERNAME} ${FTP_PASSWORD}
put ${BACKUP_PATH}${DATABASE_BACKUP_FILENAME} files_${MY_DATE}.sql.gz
put ${BACKUP_PATH}${FILES_BACKUP_FILENAME} database_${MY_DATE}.tar.gz
END_SCRIPT
#Remove local backup after upload
rm $BACKUP_PATH* -f

سپس با دستور زیر سطح دسترسی اجرایی برای آن تعریف کنید. | تهیه نسخه پشتیبان

[root@zagrio ~]# chmod backup.sh 777

حالا به شکل زیر آن را اجرا نمائید و یا در Cron قرار دهید.

[root@zagrio ~]# ./backup.sh

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *