اسکریپت تهیه نسخه پشتیبان از فایلها و بانکهای اطلاعاتی در 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

آیا این پاسخ به شما کمک کرد؟

تخفیف 50 درصد میزبانی وب زاگریو

اطلاع رسانی و اخبار در کانال میزبانی زاگریو

 چاپ این مقاله

خوانده شده

چگونه از rsync برای همگام سازی (Sync ) دایرکتوریهای Remote و Local بر روی یک VPS استفاده کنیم:

مقدمه : Rsync که پایه و اساس remote sync است، یک ابزار برای همگام سازی فایل های Local و...

بررسی فرآیندهای در حال اجرا بر روی لینوکس با استفاده از دستورات PS

دستورات بسیاری وجود دارد که با استفاده از آنها می توان فرآیندهای درحال اجرای بر روی سیستم لینوکس...

افزودن فضای اضافی به پارتیشن اصلی در سرورهای لینوکس از طریق SSH

افزایش حجم  پارتیشن ریشه -  LVM- CentOS Increase Root Partition size - LVM - CentOSبرای افزایش...

آموزش نصب Apache، MariaDB و PHP بر روی سیستم عامل CentOS 7

در این مقاله نحوه نصب وب سرور آپاچی (آخرین نسخه)، بانک اطلاعاتی ماریا دی بی (آخرین نسخه) و پی اچ...

چگونه Rule های فایروال را در CentOS 7 مدیریت کنیم

  در CentOS7 شما نیاز دارید که با فایروال آشنا شوید. در این مقاله ما می خواهیم درباره اضافه و...

Powered by WHMCompleteSolution