tsomoloko Δημοσ. 20 Ιουνίου 2008 Δημοσ. 20 Ιουνίου 2008 Γεια χαρα σε ολους! Μεσω 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" Τα φωτα σας παιδια...δεν ξερω πως γινεται...
alexandr0s Δημοσ. 20 Ιουνίου 2008 Δημοσ. 20 Ιουνίου 2008 Αυτό που πρέπει να κάνεις κατά την άποψή μου είναι όχι να παίρνεις backup από τον ίδιο φάκελο του web host σου σε άλλον φάκελο στον ίδιο γιατί αν πάθει τίποτα ο δίσκος του πάνε και τα αρχεία και το backup. Καλύτερα να φτιάξεις μια διαδικασία να γίνεται αυτόματα από το pc σου.
tsomoloko Δημοσ. 20 Ιουνίου 2008 Μέλος Δημοσ. 20 Ιουνίου 2008 Δυστυχως το προβλημα που εχω ειναι οτι δεν ξερω την εντολη (command) που πρεπει να βαλω στο Cron... Δικιο εχεις σε αυτο που λες... Λογικα, αν ηξερα το command θα μπορουσα, αφου γινει το backup, να το μεταφερω με ftp στο pc μου...
alexandr0s Δημοσ. 20 Ιουνίου 2008 Δημοσ. 20 Ιουνίου 2008 Όχι το ψάχνεις λάθος. Στο cron βάζεις εντολές που εκτελούνται στο web server σου. Πχ θα μπορούσες να βάλεις ένα script που να διαβάζει τα zippάρει τα δεδομένα σου και να τα στέλνει σε έναν άλλον ftp server. Αν έχεις 2 ftp server σε 2 διαφορετικούς provider θα ήταν η ιδανική λύση. Διαφορετικά για να παίρνεις backup στο local pc σου πρέπει να βρεις κάποιο εργαλείο (δεν γνωρίζω κάποιο για να σου προτείνω) το οποίο θα συνδέεται με ftp στο server σου και θα τραβάει τα δεδομένα locally
tsomoloko Δημοσ. 21 Ιουνίου 2008 Μέλος Δημοσ. 21 Ιουνίου 2008 ...Πχ θα μπορούσες να βάλεις ένα script που να διαβάζει τα zippάρει τα δεδομένα σου και να τα στέλνει σε έναν άλλον ftp server. Αυτο θελω φιλε αλεξανδρε! Ποια ειναι η γραμμη-εντολη για αυτο το script, ωστε να μπει στη θεση του Cron? Αυτο ψαχνω...
lavelle Δημοσ. 21 Ιουνίου 2008 Δημοσ. 21 Ιουνίου 2008 καταρχήν χρειάζεσαι ένα 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
alexandr0s Δημοσ. 21 Ιουνίου 2008 Δημοσ. 21 Ιουνίου 2008 Κάπου έχω ένα bash script που κάνει ακριβώς αυτό που θες. θα ψάξω να το βρω και θα το κάνω post
tsomoloko Δημοσ. 21 Ιουνίου 2008 Μέλος Δημοσ. 21 Ιουνίου 2008 lavelle ευχαριστω πολυ!! Πολυ helpful το post σου. Περιμενω να απαντησει κ ο φιλος Αλεξανδρος κ να δω μετα απο δοκιμες πως μπορει να γινει αυτο το cron ...
alexandr0s Δημοσ. 21 Ιουνίου 2008 Δημοσ. 21 Ιουνίου 2008 To παρακάτω για να το χρησιμοποιήσεις πρέπει να το γράψεις σε ένα text file και από τα permissions να το κάνεις executable. Αν το μελετήσεις θα καταλάβεις τι κάνει. Το παρόν παίρνει και backup από mysql. #!/bin/shdatestamp=$(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
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.