Merhaba,
belli bir dizinin yedeğini otomatik olarak uzak ftp sunucuma yedeklemek istiyorum. Ayın son günü bu dizini yedek sunucusuna aktaracak.
Bununla ilgili bir makale buldum bu işi yapıyor ama ben bu dizinde ki verileri 1 yıl tutacağımdan dolayı yedek sunucusunda aylık olarak klasörlemesi lazım. Yoksa aynı dosyayı ftp sunucusunda ki dosyanın üzerine yazacak.
Bununla ilgili nasıl bir yol izlemem lazım.
Bahsettiğim örnek makalede şunlar bulunuyor:
Here is a quick script to upload file:
!/bin/sh
USERNAME="your-ftp-user-name"
PASSWORD="your-ftp-password"
SERVER="your-ftp.server.com"
local directory to pickup *.tar.gz file
FILE="/tmp/backup"
remote server directory to upload backup
BACKUPDIR="/pro/backup/sql"
login to remote server
ftp -n -i $SERVER <<EOF
user $USERNAME $PASSWORD
cd $BACKUPDIR
mput $FILE/*.tar.gz
quit
EOF
Make sure script has executable permissions:
$ chmod +x /path/to/ftp.backup.script.sh
Setup a cron job to run script at 15:30 (24 hr clock time) times:
30 15 * /path/to/ftp.backup.script.sh
Above script should work with all modern ftp client under any Linux / UNIX version.
A shell script to dump all mysql database and upload them via lftp program
Make sure you have lftp client installed:
yum install lftp
!/bin/bash
MySQL Server Login Info
MUSER="root"
MPASS="MYSQL-ROOT-PASSWORD"
mysql server
MHOST="localhost"
FTP SERVER Login info
FTPU="FTP-SERVER-USER-NAME"
FTPP="FTP-SERVER-PASSWORD"
FTPS="FTP-SERVER-IP-ADDRESS"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
BAK="/backup/mysql"
GZIP="$(which gzip)"
NOW=$(date +"%d-%m-%Y")
[ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/*
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BAK/$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done
lftp -u $FTPU,$FTPP -e "mkdir /mysql/$NOW;cd /mysql/$NOW; mput /backup/mysql/*; quit" $FTPS
Set a cron job:
crontab -e
Run mysql backup ftp script everyday at midnight:
@midnight /path/to/mysql.backup.sh >/dev/null 2>&1