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 && ldconfigMegaTools /usr/local/bin klasörüne yüklenmiş olacaktır. Bu araç için ayar dosyası oluşturalım.
nano /root/.megarciçerisine mega.nz ye giriş bilgilerimizi yazalım.
[Login] Username = kayıtolunanmailadresi Password = şifrectrl+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/.megarcmegals yazdığınızda aşağıdaki şekilde gözüküyorsa sorun yok demektir.
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.
#!/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 0sadece root kullanıcısı erişmesi için komutchmod 750 /root/megabackup.shiş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
04 04 * * * /root/megabackup.shubuntularda satır 47 de hata verebilir. Bunu çözmek için aşağıdaki paketi indirin.
apt-get install dbus-x11
