0 beğenilme 0 beğenilmeme
170 gösterim

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

Centos kategorisinde (300 puan) | 170 gösterim
Q 1 A 0 C 0

1 cevap

0 beğenilme 0 beğenilmeme

Scripte hiç bakmadım büyük ihtimal bir yerlerden kopyala yapıştır yaptın. Çünkü içinde senin sorunla alakasız bazı işlemlerde var. Bence böyle bir scripti sen sıfırdan kodlayabilirsin. Bunun için yapman gereken sadece başlamak ve takıldığın noktalarda bu forumdan yardım alıp sonuca ulaşmak, eminim ben dahil birçok kişi sana yardımcı olacaktır.

Şöyle kabaca bir planlama yaparsak;

  1. Ayın son gününü kontrol eden ve o gün çalışacak bir kod oluştur.
  2. Bu kod ilgili klasörü alıp sıkıştırsın. (tercihen tar.gz)
  3. Sıkıştırılan bu dosyaya isim olarak dizinadi_tarih formatında bir isim ver (yedek_20190801)
  4. FTP hesabına bağlan ilgili klasöre geç
  5. Sıkıştırılmış dosyanı FTP üzerinden ilgili klasore gönder,
  6. Gönderme işleminin başarılı bir şekilde tamamlandığını kontrol et.
  7. Süreci sonlandır.

Kolay gelsin.

(430 puan)

123 soru

250 cevap

69 yorum

291 üye

Hoş geldiniz, Linux Türkiye sizlere sorularınızın diğer üyelerimiz tarafından cevaplanması için bir ortam sağlar.

İlgili sorular

0 beğenilme 0 beğenilmeme
1 cevap
0 beğenilme 0 beğenilmeme
2 cevap
4 Aralık 2017 Ubuntu kategorisinde zafer (430 puan) sordu | 196 gösterim
0 beğenilme 0 beğenilmeme
4 cevap
0 beğenilme 0 beğenilmeme
1 cevap
1 Mayıs Diğer kategorisinde ali50 (500 puan) sordu | 151 gösterim
0 beğenilme 0 beğenilmeme
0 cevap
123 soru
250 cevap
69 yorum
291 üye
Linux Türkiye Raidgen sponsorluğunda yayımlanmaktadır.