13-09-2017 Saat: 21:44
evet yedeklerinizi sunucu günlük tutmuyorsa bunu manuel olarak megatools aracı ile yapabilirsiniz.
Sırayla komut satırında bunları çalıştırın.
MegaTools /usr/local/bin klasörüne yüklenmiş olacaktır. Bu araç için ayar dosyası oluşturalım.
içerisine mega.nz ye giriş bilgilerimizi yazalım.
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.
megals yazdığınızda aşağıdaki şekilde gözüküyorsa sorun yok demektir.
şimdi yedekleme scriptimizi 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.
sadece root kullanıcısı erişmesi için komut
işlemler bitmiştir. 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
ubuntularda satır 47 de hata verebilir. Bunu çözmek için aşağıdaki paketi indirin.
Sırayla komut satırında bunları çalıştırın.
Kod:
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
Kod:
nano /root/.megarc
Kod:
[Login]
Username = kayıtolunanmailadresi
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.
Kod:
chmod 640 /root/.megarc
megals yazdığınızda aşağıdaki şekilde gözüküyorsa sorun yok demektir.
Kod:
root@debian:~# megals
/Contacts
/Inbox
/Root
/Trash
şimdi yedekleme scriptimizi 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.
Kod:
#!/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
Kod:
chmod 750 /root/megabackup.sh
işlemler bitmiştir. 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
Kod:
04 04 * * * /root/megabackup.sh
ubuntularda satır 47 de hata verebilir. Bunu çözmek için aşağıdaki paketi indirin.
Kod:
apt-get install dbus-x11