llama_thumper Posted November 1, 2006 Share Posted November 1, 2006 guys, was wondering if anyone can recommend a method of automatically backing up a directory and FTPing it, optimally in a secure way (SSL?). i would prefer something that doesn't require installation of a special program to run at my end (ie running cuteFTP automatically at startup and having some sort of schedule), since I can have a local FTP server using the inbuilt features of WinXP... any recommendations? Quote Link to comment Share on other sites More sharing options...
TCH-Bruce Posted November 1, 2006 Share Posted November 1, 2006 I found a script (don't remember where) but have not tested it. If it works I will post it here. Going to take me a while to get to it. Quote Link to comment Share on other sites More sharing options...
llama_thumper Posted November 1, 2006 Author Share Posted November 1, 2006 hi, is it the PHP one for cron that you once told me of? it was slightly messy (the output) and i'm not sure it uses SSL, or maybe you mean another one? Quote Link to comment Share on other sites More sharing options...
TCH-Bruce Posted November 1, 2006 Share Posted November 1, 2006 No, it's not that one and no it doesn't use secure FTP either and you won't be able to run a secure FTP on the servers here at TCH because they do not run secure FTP server software. The script I found does not zip the files it copies each file, I don't like that approach as it will use a lot of bandwidth. I am still working on something that will zip the contents and then be able to FTP it. Actually I believe there is something like this already posted in the forums but I have not found it yet. Quote Link to comment Share on other sites More sharing options...
TCH-Bruce Posted November 1, 2006 Share Posted November 1, 2006 Actually check out this thread. It's the one I've been looking for. Not sure if it still works, I will check with TCH-MikeJ when I see him online. Quote Link to comment Share on other sites More sharing options...
llama_thumper Posted November 1, 2006 Author Share Posted November 1, 2006 ok, thx! Quote Link to comment Share on other sites More sharing options...
adephue Posted November 4, 2006 Share Posted November 4, 2006 The script referenced above works fine. I use a modified version to dump all MySQL DB's, attach to an e-mail, and send to me daily. I also use it to do a full site backup weekly but it is too large to e-mail so I have a notification sent then I download the backup. Quote Link to comment Share on other sites More sharing options...
llama_thumper Posted November 4, 2006 Author Share Posted November 4, 2006 great, thank u! Quote Link to comment Share on other sites More sharing options...
llama_thumper Posted November 8, 2006 Author Share Posted November 8, 2006 great, thank u! ahem, not really - it does a full site backup, but not of a specific directory... if anyone does find anything, would be great to have. Quote Link to comment Share on other sites More sharing options...
TCH-Bruce Posted November 8, 2006 Share Posted November 8, 2006 See this thread. I think it will do what you want. Quote Link to comment Share on other sites More sharing options...
TCH-Bruce Posted November 12, 2006 Share Posted November 12, 2006 I've had some time and with the help of TCH-Andy have created a script that can be used to email (not recommended) or remote ftp a directory from your site to a remote server. ><?php // +----------------------------------------------------------------------+ // | PHP Version 4 | // +----------------------------------------------------------------------+ // | Copyright © 2006 Bruce Richards / Andy Beckett | // | | // | Purpose: To backup a folder structure to a zip file and then FTP | // | the file to a remote server | // | | // | Requires: zip be installed on the server and that you are able | // | to use the passthru command of PHP, the TCH servers | // | do have zip installed and passthru can be used. | // | | // | WARNING: Depending on what you are backing up the files can be quite | // | large. Be sure you have enough space for what you are | // | backing up. Also, sending huge files via email is not | // | recommended. | // | | // +----------------------------------------------------------------------+ // | Author: Bruce Richards / Andy Beckett | // +----------------------------------------------------------------------+ // // setup variables $remove_file = "yes"; // remove file when done -- recommended! $path= '/home/your-account/public_html/'; // Full path to backup $zipfile = "your.zip"; // backup file name $zippath = "/home/your-account/backups"; // path to save backup file $send_email = "no"; // Do you want this backup sent to your email? Fill out the next 2 lines $to = "you@yourdomain.ext"; // Who to send the emails to $from = "backup@yourdomain.ext"; // Who should the emails be sent from? $senddate = date("j F Y"); $subject = "Backup - $senddate"; // Subject in the email to be sent. $message = "Your backup is attached to this email"; // Brief Message. $use_ftp = "yes"; // Do you want this backup uploaded to an ftp server? Fill out the next 4 lines $ftp_server = "localhost"; // FTP hostname $ftp_user_name = ""; // FTP username $ftp_user_pass = ""; // FTP password $ftp_path = "/"; // This is the path to upload on your ftp server! // Do not Modify below this line! $date = date("mdy-hia"); $zipname = "$zippath/$date-$zipfile"; passthru("nice -n 16 zip -q -r $zipname $path "); $filename2 = "$zipname"; if($send_email == "yes" ){ $fileatt_type = filetype($filename2); $fileatt_name = "".$date."-".$zipfile.""; $headers = "From: $from"; // Read the file to be attached ('rb' = read binary) $file = fopen($filename2,'rb'); $data = fread($file,filesize($filename2)); fclose($file); // Generate a boundary string $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Add the headers for a file attachment $headers .= "\nMIME-Version: 1.0\n" ."Content-Type: multipart/mixed;\n" ." boundary=\"{$mime_boundary}\""; // Add a multipart boundary above the plain message $message = "This is a multi-part message in MIME format.\n\n" ."--{$mime_boundary}\n" ."Content-Type: text/plain; charset=\"iso-8859-1\"\n" ."Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // Base64 encode the file data $data = chunk_split(base64_encode($data)); // Add file attachment to the message $message .= "--{$mime_boundary}\n" ."Content-Type: {$fileatt_type};\n" ." name=\"{$fileatt_name}\"\n" ."Content-Disposition: attachment;\n" ." filename=\"{$fileatt_name}\"\n" ."Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" ."--{$mime_boundary}--\n"; // Send the message $ok = @mail($to, $subject, $message, $headers. "-f" .$from); if ($ok) { echo "<h4><center>Backup created and sent! File name $filename2</center></h4>"; } else { echo "<h4><center>Mail could not be sent. Sorry!</center></h4>"; } } if($use_ftp == "yes"){ $conn = ftp_connect($ftp_server); if(!$conn) { exit("Could not connect to server: $ftp_server\n"); } if(!ftp_login($conn,$ftp_user_name,$ftp_user_pass)) { ftp_quit($conn); exit("Could not log in\n"); } ftp_chdir($conn,$ftp_path); $remotefile = "".$date."-".$zipfile.""; if(!ftp_put($conn, $ftp_path.$remotefile, $filename2, FTP_BINARY)) { echo "Could not upload $filename2\n"; } ftp_quit($conn); echo "<h4><center>$filename2 Was created and uploaded to your FTP server!</center></h4>"; } if($remove_file=="yes"){ exec("rm -r -f $filename2"); } ?> Copy this and create a PHP file, upload it to your server and create a cron job to run it or you can run it from your web browser. Don't forget this could create huge files and I could not get a 22MB file to email to GMail but smaller zip files emailed just fine. The FTP function works just fine with large files. Quote Link to comment Share on other sites More sharing options...
TCH-Thomas Posted November 13, 2006 Share Posted November 13, 2006 I believe Gmail have 10 Mb limit. Quote Link to comment Share on other sites More sharing options...
TCH-Bruce Posted November 13, 2006 Share Posted November 13, 2006 I believe Gmail have 10 Mb limit. Well, that might explain it then. The file I was trying to email was 22mb. Found this which states the size limit of attachments to GMail. Quote Link to comment Share on other sites More sharing options...
llama_thumper Posted November 25, 2006 Author Share Posted November 25, 2006 thank you for that PHP script, it's exactly what I was looking for. Quote Link to comment Share on other sites More sharing options...
TCH-Bruce Posted November 25, 2006 Share Posted November 25, 2006 You're welcome Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.