Προς το περιεχόμενο

Cron-Ftp Backup How To


tsomoloko

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια χαρα σε ολους!

Μεσω CPanel εχω τη δυνατοτητα να τρεξω Cron commands.

Δεν το εχω ξανακανει ομως και δε γνωριζω το πως...

Τι θελω να πετυχω?

Να κανω ενα backup του ftp χωρου μου, ειτε στον ιδιο χωρο (το αντιγραφο) ειτε στο local disk...

Ενα τετοιο backup ειναι πολυ χρησιμο για πολλους λογους (κυριως ασφαλειας).

Δειτε λοιπον τι μου απαντανε οι τεχνικοι της εταιρειας του web hosting

 

"You need to contact your developer to develop that script.

We can only assist you with providing the server details."

 

και αφου τους απαντησα οτι δεν γνωριζω γρη απο το ζητημα μου απαντησαν...

 

"ok, Please use the following steps :

In the control panel via the "crontab" tab you are able to setup a cronjobs. You can setup the system to access a specified URL at a specified interval.

I hope this helps a bit"

 

Τα φωτα σας παιδια...δεν ξερω πως γινεται... :(

Δημοσ.

Αυτό που πρέπει να κάνεις κατά την άποψή μου είναι όχι να παίρνεις backup από τον ίδιο φάκελο του web host σου σε άλλον φάκελο στον ίδιο γιατί αν πάθει τίποτα ο δίσκος του πάνε και τα αρχεία και το backup. Καλύτερα να φτιάξεις μια διαδικασία να γίνεται αυτόματα από το pc σου.

Δημοσ.

Δυστυχως το προβλημα που εχω ειναι οτι δεν ξερω την εντολη (command) που πρεπει να βαλω στο Cron...

Δικιο εχεις σε αυτο που λες...

Λογικα, αν ηξερα το command θα μπορουσα, αφου γινει το backup, να το μεταφερω με ftp στο pc μου...

Δημοσ.

Όχι το ψάχνεις λάθος. Στο cron βάζεις εντολές που εκτελούνται στο web server σου. Πχ θα μπορούσες να βάλεις ένα script που να διαβάζει τα zippάρει τα δεδομένα σου και να τα στέλνει σε έναν άλλον ftp server. Αν έχεις 2 ftp server σε 2 διαφορετικούς provider θα ήταν η ιδανική λύση. Διαφορετικά για να παίρνεις backup στο local pc σου πρέπει να βρεις κάποιο εργαλείο (δεν γνωρίζω κάποιο για να σου προτείνω) το οποίο θα συνδέεται με ftp στο server σου και θα τραβάει τα δεδομένα locally

Δημοσ.
...Πχ θα μπορούσες να βάλεις ένα script που να διαβάζει τα zippάρει τα δεδομένα σου και να τα στέλνει σε έναν άλλον ftp server.

 

Αυτο θελω φιλε αλεξανδρε!

Ποια ειναι η γραμμη-εντολη για αυτο το script, ωστε να μπει στη θεση του Cron?

Αυτο ψαχνω...

Δημοσ.

καταρχήν χρειάζεσαι ένα script το οποίο θα καλεί το cron job για να στέλνει τo backup σου σε άλλο server μέσω FTP. Δεν αρκεί δηλαδή μόνο ο ορισμός του cron job.

 

SCRIPT (το ονομάζω sitebackup.php)

 

<?php

 

$cpuser = "username"; // Username used to login to CPanel

$cppass = "password"; // Password used to login to CPanel

$domain = "example.com"; // Domain name where CPanel is run

$skin = "x3"; // Set to cPanel skin you use

 

// Info required for FTP host

$ftpuser = "ftpusername"; // Username for FTP account

$ftppass = "ftppassword"; // Password for FTP account

$ftphost = "ftp.domain.gr"; // Full hostname or IP address for FTP host

$ftpmode = "ftp"; // FTP mode ("ftp" for active, "passiveftp" for passive)

 

// Notification information

$notifyemail = "[email protected]"; // Email address to send results

 

// Secure or non-secure mode

$secure = 0; // Set to 1 for SSL (requires SSL support), otherwise will use standard HTTP

 

// Set to 1 to have web page result appear in your cron log

$debug = 0;

 

if ($secure) {

$url = "ssl://".$domain;

$port = 2083;

} else {

$url = $domain;

$port = 2082;

}

 

$socket = fsockopen($url,$port);

if (!$socket) { echo "Failed to open socket connection... Bailing out!\n"; exit; }

 

// Encode authentication string

$authstr = $cpuser.":".$cppass;

$pass = base64_encode($authstr);

 

$params = "dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&submit=Generate Backup";

 

// Make POST to cPanel

fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");

fputs($socket,"Host: $domain\r\n");

fputs($socket,"Authorization: Basic $pass\r\n");

fputs($socket,"Connection: Close\r\n");

fputs($socket,"\r\n");

 

// Grab response even if we don't do anything with it.

while (!feof($socket)) {

$response = fgets($socket,4096);

if ($debug) echo $response;

}

 

fclose($socket);

 

?>

 

CRON JOB (ας υποθέσουμε ότι το βάζουμε να τρέχει στις 06:30 κάθε πρωϊ και έχουμε ανεβάσει το sitebackup.php στο root directory)

 

30 6 * * * /usr/local/bin/php /home/cpanel_username/sitebackup.php

Δημοσ.

lavelle ευχαριστω πολυ!! Πολυ helpful το post σου. Περιμενω να απαντησει κ ο φιλος Αλεξανδρος κ να δω μετα απο δοκιμες πως μπορει να γινει αυτο το cron ...

Δημοσ.

To παρακάτω για να το χρησιμοποιήσεις πρέπει να το γράψεις σε ένα text file και από τα permissions να το κάνεις executable. Αν το μελετήσεις θα καταλάβεις τι κάνει. Το παρόν παίρνει και backup από mysql.

 

#!/bin/sh

datestamp=$(date +%Y%m%d)

timestamp=$(date +%k%M)

extension=tar

filename=my_site$datestamp-$timestamp.$extension

filenamesql=my_site$datestamp-$timestamp.sql

cd /some/temporary/folder

echo Creating TAr file

tar -cf $filename /path/sto/folder/sou

echo Compressing TAr File

gzip $filename

echo Creating MySQL Backup

mysqldump --user username --password=password --opt database_name>$filenamesql

echo Compressing MySQL Backup

gzip $filenamesql

echo File created $filename,$filenamesql

 

ftp -n <<**

open o.ftp.server.sou

user ftp_username ftp_password

cd sto/folder/pou/thes

binary

put $filename.gz

put $filenamesql.gz

bye

**

rm $filename.gz

rm $filenamesql.gz

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...