Linux Yedeği Mega Disk Aktarma

Katılım
15 Tem 2018
Tepki puanı
422
Rating - 0%
122-710x300.jpg


Bildiğiniz gibi mega sitesi ücretsiz 50GB alan vermekte. Bu hizmeti sunucunuzun günlük yedeklerini almak için kullanabilirsiniz. Vereceğim script web sitenizin klasörünü ve tüm mysql veritabanını zipleyip mega.nz ye yükleyecektir. mega.nz ye yükleme için MegaTools isimli aracı kullanacağız. Kurulum işlemleri ubuntu 16’da test edilmiştir. Şimdi kuruluma geçelim.


Sırayla komut satırında bunları çalıştırın.





apt-get install -y build-essential pkg-config libglib2.0-dev libssl-dev libcurl4-openssl-dev libfuse-dev glib-networking
wget http://megatools.megous.com/builds/megatools-1.9.97.tar.gz
tar xzf megatools-1.9.97.tar.gz
cd megatools-1.9.97
./configure && make && make install && ldconfig


MegaTools /usr/local/bin klasörüne yüklenmiş oluyor. Bu yazılım için ayar dosyası Oluşturuyoruz.

nano /root/.megarc

içerisine mega.nz ye giriş bilgilerimizi yazalım.

[Login]

Username = email adresi

Password = şifre



ctrl+o, enter ve ctrl+x e basarak text editörden çıkalım. komut satırından ayar dosyasının haklarını ayarlayalım.

chmod 640 /root/.megarc

şimdi yedekleme yazılımızı hazırlayalım. root klasörümüzün içine megabackup.sh dosyası oluşturalım ve içine bu kodları yapıştıralım.



#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root
SERVER="servername" #yedek alinacak domain adi
DAYS_TO_BACKUP=7 #kaç gunluk yedek tutulacak
WORKING_DIR="/root/backup_tmp_dir" #gecici dosyalarin konulacagi klasor
BACKUP_MYSQL="true" #mysql yedeklenecekmi
MYSQL_USER="root"
MYSQL_PASSWORD="MyRootPassword"
DOMAINS_FOLDER="/var/www" #site dosyalarinizin bulundugu klasor
##################################
# Create local working directory and collect all data
rm -rf ${WORKING_DIR}
mkdir ${WORKING_DIR}
cd ${WORKING_DIR}
# Backup /etc folder
cd /
tar cJf ${WORKING_DIR}/etc.tar.gx etc
cd - > /dev/null
# Backup MySQL
if [ "${BACKUP_MYSQL}" = "true" ]
then
mkdir ${WORKING_DIR}/mysql
for db in $(mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e 'show databases;' | grep -Ev "^(Database|mysql|information_schema|performance_schema|phpmyadmin)$")
do
#echo "processing ${db}"
mysqldump --opt -u${MYSQL_USER} -p${MYSQL_PASSWORD} "${db}" | gzip > ${WORKING_DIR}/mysql/${db}_$(date +%F_%T).sql.gz
done
#echo "all db now"
mysqldump --opt -u${MYSQL_USER} -p${MYSQL_PASSWORD} --events --ignore-table=mysql.event --all-databases | gzip > ${WORKING_DIR}/mysql/ALL_DATABASES_$(date +%F_%T).sql.gz
fi
# Backup domains
mkdir ${WORKING_DIR}/domains
for folder in $(find ${DOMAINS_FOLDER} -mindepth 1 -maxdepth 1 -type d)
do
cd $(dirname ${folder})
tar cJf ${WORKING_DIR}/domains/$(basename ${folder}).tar.xz $(basename ${folder})
cd - > /dev/null
done
##################################
# Workaround to prevent dbus error messages
export $(dbus-launch)
# Create base backup folder
[ -z "$(megals --reload /Root/backup_${SERVER})" ] && megamkdir /Root/backup_${SERVER}
# Remove old logs
while [ $(megals --reload /Root/backup_${SERVER} | grep -E "/Root/backup_${SERVER}/[0-9]{4}-[0-9]{2}-[0-9]{2}$" | wc -l) -gt ${DAYS_TO_BACKUP} ]
do
TO_REMOVE=$(megals --reload /Root/backup_${SERVER} | grep -E "/Root/backup_${SERVER}/[0-9]{4}-[0-9]{2}-[0-9]{2}$" | sort | head -n 1)
megarm ${TO_REMOVE}
done
# Create remote folder
curday=$(date +%F)
megamkdir /Root/backup_${SERVER}/${curday} 2> /dev/null
# Backup now!!!
megacopy --reload --no-progress -l ${WORKING_DIR} -r /Root/backup_${SERVER}/${curday} > /dev/null
# Kill DBUS session daemon (workaround)
kill ${DBUS_SESSION_BUS_PID}
rm -f ${DBUS_SESSION_BUS_ADDRESS}
# Clean local environment
rm -rf ${WORKING_DIR}
exit 0



sadece root kullanıcısı erişmesi için komut

chmod 750 /root/megabackup.sh

işlemler tamamdır. crontaba da aşağıdaki şekilde ekleyebilirsiniz bunun için komut satırında “crontab -e” yazıp aşağıdaki kodu en alta yapıştırın

04 04 * * * /root/megabackup.sh

İşlemimiz Tamamdır

Alıntı hasan atilan kardeşinden yapilmistir
 
131,512Konular
3,268,846Mesajlar
315,315Kullanıcılar
SoapSon Üye
Üst Alt