Example #1
0
 /**
  * @param  [type] $first_arr  see run_everything_amazon function in 'ssh' custom class
  * @return [type]             [description]
  */
 function send_ssh_request($Net_SSH2Ob, $first_arr, $type, $other = array())
 {
     $sshOb = new ssh($Net_SSH2Ob);
     if ($Net_SSH2Ob->isConnected()) {
         $ssh_result = $sshOb->run_everything_amazon($first_arr, $type, $other);
         if ($ssh_result == 1) {
             return 1;
         } else {
             return 0;
         }
     }
 }
Example #2
0
 /**
  * check connection
  */
 public function test()
 {
     // check POST
     if ($this->input->server('REQUEST_METHOD', false) != 'POST') {
         echo json_encode(array('result' => 'error', 'error' => 'the action requires POST request'));
         return;
     }
     // check parameters
     $params = $this->input->post();
     if (empty($params) || !isset($params['host']) || !isset($params['login']) || !isset($params['password'])) {
         echo json_encode(array('result' => 'error', 'error' => 'no `host`, `login` or `password` parameter'));
     } elseif ($params['host'] && $params['login'] && $params['password']) {
         // create the connection
         $ssh = new ssh($params['host'], $params['login'], $params['password']);
         if ($ssh->connect() === false) {
             echo json_encode(array('result' => 'error', 'error' => 'cannot connect'));
         } else {
             echo json_encode(array('result' => 'success'));
         }
     }
 }
Example #3
0
 protected function control($type)
 {
     $id = $this->id;
     $SSH = rp::get('SSH');
     $host = $SSH['ip'];
     $user = $SSH['user'];
     $pass = $SSH['password'];
     unset($SSH);
     $ssh = new ssh($host, $user, $pass);
     $sql = new sql();
     $sql->setTable('server');
     $sql->setWhere('id=' . $id);
     #$ssh->read('[prompt]');
     switch ($type) {
         case 'install':
             $ssh->exec("cd {$id}; ./control.sh auto-install  > /dev/null &");
             $sql->addPost('status', 0);
             break;
         case 'start':
             $ssh->exec("cd {$id}; ./control.sh start >> /dev/null 2>&1 & /n");
             $sql->addPost('status', 1);
             break;
         case 'stop':
             $ssh->exec("cd {$id}; ./control.sh stop >> /dev/null 2>&1 & /n");
             $sql->addPost('status', 0);
             break;
         case 'restart':
             $ssh->exec("cd {$id}; ./control.sh restart >> /dev/null 2>&1 & /n");
             $sql->addPost('status', 1);
             break;
     }
     $sql->update();
 }
Example #4
0
<div class="panel">
	<div class="content">
        <div id="terminal">
            <?php 
$SSH = rp::get('SSH');
$host = $SSH['ip'];
$user = $SSH['user'];
$pass = $SSH['password'];
unset($SSH);
$ssh = new ssh($host, $user, $pass);
if (ajax::is()) {
    $test = 1;
} else {
    echo nl2br($ssh->read('/.*@.*[$|#]/', NET_SSH2_READ_REGEX));
    $ssh->write("screen -r test123 \n\r");
    $ssh->setTimeout(4);
    $ssh->write("ping google.de \n\r");
}
if (ajax::is()) {
    #$ssh->setTimeout(1);
    #$ssh->write("ping google.de \n\r");
    $ssh->setTimeout(4);
    $ssh->exec("screen -r test123");
    #$return = nl2br($ssh->read('/.*@.*[$|#]/', NET_SSH2_READ_REGEX));
    ajax::addReturn($return);
}
?>
        </div>
    </div>
</div>
Example #5
0
 /**
  * @brief create new folder
  * @method POST
  * 	 * grep -r -i -B 2 -A 1 "n Search" --include \*php /var/www/grunssh
  * @return  
  */
 public function search()
 {
     $params = $this->input->post();
     if (empty($params) || !isset($params['id']) || empty($params['id']) || !isset($params['term']) || empty($params['term']) || !isset($params['host']) || empty($params['host']) || !isset($params['login']) || empty($params['login']) || !isset($params['password']) || empty($params['password'])) {
         echo json_encode(array('result' => 'error', 'error' => 'missing parameters'));
         return;
     }
     $fileNamesOnly = isset($params['onlyFiles']) && $params['onlyFiles'] == 1;
     // connect to remote host
     $ssh = new ssh($params['host'], $params['login'], $params['password']);
     $folderPath = str_replace('_SEP_', '/', $params['id']);
     $term = $params['term'];
     $commandParams = '';
     if ($fileNamesOnly) {
         $commandParams .= ' -l ';
     }
     $result = $ssh->exec('grep -r ' . $commandParams . ' ' . escapeshellarg($term) . ' ' . escapeshellarg($folderPath));
     $totalResults = substr_count($result, "\n");
     if ($result === false) {
         echo json_encode(array('result' => 'error', 'error' => 'cannot create folder'));
         return;
     }
     // get list of results
     $results = explode("\n", $result);
     // clear empty lines
     $results = array_filter($results, 'strlen');
     // keep files with path (starting with "/")
     $results = array_filter($results, function ($el) {
         return preg_match('%^/%', $el);
     });
     // rearrange the array
     $results = array_values($results);
     echo json_encode(array('result' => 'success', 'occurrences' => $results));
 }
Example #6
0
<?php

/**
 * Simple script for backup MySQL database on remote server
 */
include "ssh.class.php";
$server_host = "ssh.example.com";
$server_login = "******";
$server_password = "******";
// Didn't use simple passwords
$mysql_user = "******";
$mysql_password = "******";
// Didn't use simple passwords
$mysql_database = "base";
// Connect:
$ssh = new ssh($server_host, $server_login, $server_password);
// Make backup:
$ssh("mysqldump -u {$mysql_user} -p{$mysql_password} {$mysql_database} > /tmp/bases", "gzip -9 /tmp/bases");
// Download backup:
$ssh->download("/tmp/bases.gz", "/my/backups/dir/bases.gz");
// Delete backup on server
$ssh("rm /tmp/bases.gz");
function doUpload()
{
    global $upload_settings_file, $datenow, $total_pids_taken_per_run, $class_ju, $class_jc, $jng_sp_id, $jng_sp_name, $image_uploaded_file, $xml_filepath, $xml_filename, $xml_filename_marker, $xml_filename_temp, $zip_final, $zip_filename, $zip_filename_marker, $start, $pid_file_processed, $timestamp, $process_runned;
    $success = false;
    $messages_success = 'CAT XML File is created on "temp"<br/>';
    //INITIALIZE FTP SETTINGS AND PATHS
    use_class('ssh');
    $ftp_server = SP_NECKERMANN_CAT_FTP_HOST;
    $ftp_user_name = SP_NECKERMANN_CAT_FTP_USER;
    $ftp_user_pass = SP_NECKERMANN_CAT_FTP_PASSWORD;
    $ftp_file_path = 'out/';
    $ssh = new ssh($ftp_server, $ftp_user_name, $ftp_user_pass);
    if ($ssh->sftp !== false) {
        //    if(true) { ##XXX  (FOR TESTING)
        if (file_exists($image_uploaded_file)) {
            $handle = fopen($image_uploaded_file, "r+");
            $im_contents = fread($handle, filesize($image_uploaded_file));
            $upload_image_log = $im_contents != '' ? explode(',', $im_contents) : array();
            fclose($handle);
        }
        $upload_img_zip = count($upload_image_log) > 0;
        //MOVE XML MEDIA FILE FROM TEMP TO UPLOAD FOLDER ON SERVER
        if (file_exists($xml_filename_temp)) {
            //CREATE BACKUP CAT XML
            $zip_xml_backup = "{$datenow}-{$xml_filename}.zip";
            $zip_xml_backup_filepath = SP_NECKERMANN_PATH . "cat-backup/{$zip_xml_backup}";
            $shell[] = 'cd ' . SP_NECKERMANN_TEMP_FOLDER;
            $shell[] = "zip  {$zip_xml_backup_filepath} {$xml_filename}";
            //add image file directly to single zip
            $output = shell_exec(implode("\n", $shell));
            /* FOR TESTING ON LOCAL
               $shell = '"C:\Program Files\WinRAR\WinRAR.exe" a '."$zip_xml_backup_filepath $xml_filename_temp";
               $output = exec($shell);
                */
            //PUT CAT XML FROM TEMP TO "products/out"
            $success = rename($xml_filename_temp, $xml_filepath);
            $messages_success .= 'CAT XML File is moved from "temp" to "products/out"<br/>';
        } else {
            sendMessageToAdmin("Function doUpload -> The CAT file is not found on {$xml_filename_temp}, please contact administrator.", true, true);
        }
        //        $success = true; ##XXX (FOR TESTING)
        if ($success) {
            $contents = $ssh->ssh2ListDirectory($ftp_file_path);
            if (is_array($contents) && count($contents) > 0) {
                if (in_array($xml_filename, $contents)) {
                    $ssh->ssh2Unlink($xml_filename);
                }
            }
            echo '. ';
            //templine
            if ($upload_img_zip) {
                $success_upload = $ssh->ssh2FileUpload($zip_final, $ftp_file_path . $zip_filename);
                echo '. ';
                //templine
                if ($success_upload) {
                    $uploaded_size = $ssh->ssh2FileSize($ftp_file_path . $zip_filename);
                    $local_size = filesize($zip_final);
                    if ($uploaded_size == $local_size) {
                        $messages_success .= 'Media (Image) File is uploaded to NM.DE<br/>';
                        $success_upload = $ssh->ssh2FileCreate($ftp_file_path . $zip_filename_marker);
                    } else {
                        $messages_error .= 'Media (Image) File Upload Failed<br/>';
                        $success_upload = false;
                    }
                }
                if (!$success_upload) {
                    $messages_error .= 'Function doUpload -> Image file Upload failed<br/>';
                }
            } else {
                $success_upload = true;
            }
            //$success_upload = $ssh->ssh2FileCreate($ftp_file_path.$xml_filename, $xml_content);
            echo '. ';
            //templine
            if ($success_upload) {
                $success_upload = $ssh->ssh2FileUpload($xml_filepath, $ftp_file_path . $xml_filename);
                if ($success_upload) {
                    $uploaded_size = $ssh->ssh2FileSize($ftp_file_path . $xml_filename);
                    $local_size = filesize($xml_filepath);
                    //var_dump('Local: '.$local_size); echo '<br />';
                    //var_dump('Remote: '.$uploaded_size);
                    if ($uploaded_size == $local_size) {
                        $messages_success .= 'CAT XML File is uploaded to NM.DE<br/>';
                        $success_upload = $ssh->ssh2FileCreate($ftp_file_path . $xml_filename_marker);
                    } else {
                        $messages_error .= 'Function doUpload -> CAT XML File Upload failed<br/>';
                        $success_upload = false;
                    }
                }
            }
            $success = $success_upload;
        } else {
            sendMessageToAdmin('Function doUpload -> Could not move CAT XML from "temp" to "products/out".', true, true);
        }
    } else {
        sendMessageToAdmin('Function doUpload -> ' . $jng_sp_name . ': Failed connecting to SFTP server', true, true);
    }
    if ($success) {
        $class_jc->updateLastActiveStatus($jng_sp_id);
        $class_jc->updateLastReportedStock($jng_sp_id);
        $upload_id = $class_ju->newUpload($jng_sp_id, 'CAT', $zip_xml_backup, 'auto');
        echo "<h1>UPLOAD ID {$upload_id}</h1>";
        if ($upload_img_zip) {
            $class_ju->addUploadType($upload_id, 'MEDIA', $zip_filename);
            foreach ($upload_image_log as $jcid) {
                $class_ju->addUploadImage($upload_id, $jcid);
            }
        }
        $products = array();
        $handle = fopen($pid_file_processed, 'r+');
        $fp_contents = fread($handle, filesize($pid_file_processed));
        $fp_temp = explode("\n", $fp_contents);
        if (is_array($fp_temp) && count($fp_temp) > 0) {
            $products = explode(',', $fp_temp[0]);
            fwrite($handle, $fp_temp[0] . "\nUPLOADED SUCCESSFULLY ON {$timestamp}");
        }
        fclose($handle);
        $messages_success .= "CAT UPLOAD DONE >> upload_id : {$upload_id}<br/>";
        $handle = fopen($upload_settings_file, 'r+');
        fwrite($handle, "{$total_pids_taken_per_run}\nDONE\n{$process_runned}");
        fclose($handle);
    }
    $time = microtime();
    $time = explode(' ', $time);
    $time = $time[1] + $time[0];
    $finish = $time;
    $total_time = round($finish - $start, 4);
    $messages_time = "<p style=\"color:#000;\">Processing time : {$total_time} seconds</p>";
    if ($messages_error != '') {
        $messages_error .= $messages_time;
        sendMessageToAdmin($messages_error, true, true);
    }
    if ($messages_success != '') {
        //SET UPLOAD STATUS TO SUCCESS 'S' ALSO SET IMAGE UPLOADED TO '1'
        if ($upload_id > 0) {
            $class_ju->updateStatus($upload_id, 'S', 'auto');
        }
        $messages_success .= $messages_time;
        $messages_success .= '<br/>Total Products Processed : ' . count($products) . ' Products';
        sendMessageToAdmin($messages_success, false);
    }
}
     exit;
 }
 //XML CLOSER
 $xml_content .= writeXMLclose('NVAG_CATALOG', 0);
 //FINISH XML FILE CREATION
 $success = fwrite($file, $xml_content) !== false;
 fclose($file);
 if ($success) {
     $success = false;
     //initialize ftp settings and paths
     use_class('ssh');
     $ftp_server = SP_NECKERMANN_CAT_FTP_HOST;
     $ftp_user_name = SP_NECKERMANN_CAT_FTP_USER;
     $ftp_user_pass = SP_NECKERMANN_CAT_FTP_PASSWORD;
     $ftp_file_path = 'out/';
     $ssh = new ssh($ftp_server, $ftp_user_name, $ftp_user_pass);
     if ($ssh->sftp !== false) {
         $contents = $ssh->ssh2ListDirectory($ftp_file_path);
         if (is_array($contents) && count($contents) > 0) {
             if (in_array($xml_filename, $contents)) {
                 $ssh->ssh2Unlink($xml_filename);
             }
         }
         //echo '. ';  //templine
         $success_upload = $ssh->ssh2FileUpload($xml_filepath, $ftp_file_path . $xml_filename);
         if ($success_upload) {
             $uploaded_size = $ssh->ssh2FileSize($ftp_file_path . $xml_filename);
             $local_size = filesize($xml_filepath);
             //var_dump('Local: '.$local_size); echo '<br />';
             //var_dump('Remote: '.$uploaded_size);
             if ($uploaded_size == $local_size) {