Advertisement
Guest User

Untitled

a guest
Feb 10th, 2013
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.18 KB | None | 0 0
  1. <?php
  2.     //init
  3.     parse_str(implode('&', array_slice($argv, 1)), $_GET);
  4.     $error = array();
  5.  
  6.     $lPrefix         = '/home/hozza/Sites/';
  7.     $archiveLocation = '/home/hozza/Backups/';
  8.  
  9.     $log_stem = '/tmp/' . time() . '_';  // ie: /tmp/1357581737_
  10.         $lfOutfile = $log_stem . 'lftp.log';
  11.         $tarOutfile = $log_stem . 'tar.log';
  12.  
  13.     $lDir = isset($_GET['l']) ? $_GET['l'] : $error[] = 'Local Directory Required';
  14.     $rDir = isset($_GET['r']) ? $_GET['r'] : $error[] = 'Remote Directory Required';
  15.     $bookmark = isset($_GET['b']) ? $_GET['b'] : $error[] = 'lftp Bookmark Required';
  16.  
  17.     //Check for args
  18.     if(count($error) == 0) {
  19.         $archiveName = end(explode('/', $lDir)) . '_' . date('Y-m-d_H-i');
  20.  
  21.         //Validate local dir
  22.         if(is_dir($lPrefix . $lDir)) {
  23.            
  24.             //preserve Sublime Text 2 config SFTP files
  25.             $ST2_SFTP_conf = false;
  26.             if(file_exists($lPrefix . $lDir . '/sftp-config.json')) {
  27.                 $ST2_SFTP_conf = file_get_contents($lPrefix . $lDir . '/sftp-config.json');
  28.                 unlink($lPrefix . $lDir . '/sftp-config.json');
  29.             }
  30.  
  31.             shell_exec('lftp  -e "mirror -e -p --parallel=10 --script=' . $archiveLocation . 'logs/' . $archiveName . '.txt ' . $rDir . '/ ' . $lPrefix . $lDir . '/; exit top" ' . $bookmark . ' | tee ' . $lfOutfile . ' 1>&2');
  32.             shell_exec('cd ' . $lPrefix . ' && tar -czf ' . $archiveLocation . $archiveName . '.tar.gz ' . $lDir . ' | tee ' . $tarOutfile . ' 1>&2');
  33.  
  34.             $lfOut = file_get_contents($lfOutfile);
  35.             $tarOut = file_get_contents($tarOutfile);
  36.  
  37.             // remove tmp files
  38.             unlink($lfOutfile);
  39.             unlink($tarOutfile);
  40.  
  41.             //Output completion or errors
  42.             shell_exec('notify-send -i gnome-network-properties -t 0 "Mirror & Archive ' . $bookmark . ' Complete" "' . $archiveName . '\n\n' . $lfOut . $tarOut . '"');
  43.  
  44.  
  45.             //put back ST2 SFTP conf
  46.             if($ST2_SFTP_conf != false) file_put_contents($lPrefix . $lDir . '/sftp-config.json', $ST2_SFTP_conf);
  47.  
  48.             exit;
  49.         }
  50.         else shell_exec('notify-send -i error -t 0 "Mirror & Archive Error" "' . date('Y-m-d') . ' ' . date('H-i') . '\n' . $lDir . ' \n Does not exist! D:"');
  51.     }
  52.     else shell_exec('notify-send -i error -t 0 "Mirror & Archive Error" "' . date('Y-m-d') . ' ' . date('H-i') . '\n' . implode('\n', $error) . '"');
  53. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement