Ana Sayfa » *nix » Mysql – Backup to FTP (PHP Script)

Mysql – Backup to FTP (PHP Script)


BerbatKötüİdare EderGüzelHarika (Henüz Puan Verilmedi. Oy kullanarak siz de katkı yapabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYaSvMG4' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349

Bir sunucusundan mysqldump ile alıp ftp üzerinden uzaktaki bir sunucuya gönderen güzel bir .

İçeriği aşağıdaki gibi olan bu scripti kendi sisteminize göre düzenledikten sonra cron job olarak tanımlayabilirsiniz. Böylece periyodik olarak alınan backupları istediğiniz bir lokasyonda muhafaza edebilirsiniz.

Gerekenler


Bir FTP Hesabı
ve son olarak

Uygulanışı

1 – Aşağıdaki içeriğini serverınızda oluşturacağınız backuptoftp.php isimli bir dosyaya kopyalayın.

ftp.sunucusunun.ipsi",21);

// login with username and password
$login_result = ftp_login($conn_id, "ftp_kullanici_adi", "ftp_sifre");

// check connection
if ((!$conn_id) || (!$login_result)) {
$errmsg .= "FTP connection has failed!";
//$errmsg .= "Attempted to connect to $ftp_server for user $ftp_user_name";
die;
} else {
//echo "Connected to $ftp_server, for user $ftp_user_name";
}

// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

//$upload = 1;

// check upload status
if (!$upload) {
$errmsg .="FTP upload has failed!";
} else {
$sucmsg .="Uploaded $source_file to $ftp_server as $destination_file";
// copy($source_file,$destination_file_copy);
}

// close the FTP stream

ftp_quit($conn_id);

if ($sucmsg) {
return true;
}
//echo $errmsg;
}

exec("/usr/local/bin/mysqldump -u username -ppassword db_ismi  > \
//dizini/db_ismi.sql");
exec("gzip -f //dizini/dbname.sql");

publish_ftp("/db_ismi.sql.gz","/backup/dizini/db_ismi.sql.gz");
//birinci dosya hedef, ikincisi kaynak
?>

2 – Kırmızı ile belirtilmiş olan ftp, path, backup'ı alınacak db ismi, kullanıcı adı ve sifre gibi bilgileri düzenleyin.

3 – Scripti çalıştırıp test edin.

/usr/local/bin/php /php/dosyanızın/bulundugu/dizini/backuptoftp.php

Not: Ben bu scripti FreeBSD üzerinde çalıştırıyorum ve php “/usr/local/bin” pathi altında duruyor. Php'nin yerini saptamak için “whereis php” komutunu çalıştırabilirsiniz. Aynı şey içindeki mysqldump için de geçerli.

4 – Sorunsuz bir şekilde çalıştığına emin olduktan sonra cron job olarak sisteme ekleyin.

45 06 * * * /usr/local/bin/php /php/dosyanızın/bulundugu/dizini/backuptoftp.php (Hergün 06:45'te çalışır.)

Hepsi bu.


Visited 1.092 times, 1 visit(s) today
Kategoriler: *nix,Genel |

Bu yazılar da ilginizi çekebilir:


- Mysql Backup to FTP (Shell Script)
- MySQL Replication durumunu bir script ile check etmek
- MySQL – Stored Procedure ve Function’ların Yedeklenmesi
- Php Upload File Size
- Mysql Root Şifresini Resetlemek – Password Recovery

Yorumlar


  1. mustafa suphi | (Ekim 29th, 2008 11:46 pm)

    Merhaba,
     
    guzel bir kod, tam ihtiyacim olduğu bir anda işime yaradı.
    ufak bir not. alttaki satırın başındaki slashlar(//) olmaması gerekli.
    //echo $this->ftphost;$conn_id = ftp_connect(“ftp.sunucusunun.ipsi”,21);
    bende kaldırınca çalışmaya başladı.
     
    teşekkürler.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Merhabalar,

    Evet haklisiniz, sunucudan kopyala yapıştır yaparken hata yapmisim ve conn_id bölümü comment out edilmiş. Orjinali şöyle;

    //echo $this->ftphost;
    $conn_id = ftp_connect(”ftp.sunucusunun.ipsi”,21);

    Hatayı düzelttim.
    Ilginiz için teşekkür ederim.

    [Cevapla]

  2. enver | (Mayıs 31st, 2009 9:00 am)

    yapılan projelerin birçoğuna eklenmesi gereken bir betik. teşekkürler.

    [Cevapla]

Trackbacks

Yorumda bulunun.