Я хочу настроить CRON, который запускает PHP-скрипт, который, в свою очередь, перемещает XML-файл (содержащий нечувствительную информацию) с одного сервера на другой.
Я получил правильное имя пользователя / пароль и хочу использовать протокол SFTP. Работы будут выполняться ежедневно. Существует потенциал того, что один сервер является Linux, а другой – Windows. Оба находятся в разных сетях.
Каков наилучший способ перемещения этого файла?
Если оба сервера будут в Linux, вы можете использовать rsync для любых файлов (php, xml, html, binary и т. Д.). Даже если один из них будет Windows, в Windows есть порты rsync.
Почему бы не попробовать использовать FTP-функции PHP?
Тогда вы можете сделать что-то вроде:
// open some file for reading $file = 'somefile.txt'; $fp = fopen($file, 'r'); // set up basic connection $conn_id = ftp_connect($ftp_server); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // try to upload $file if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) { echo "Successfully uploaded $file\n"; } else { echo "There was a problem while uploading $file\n"; } // close the connection and the file handler ftp_close($conn_id); fclose($fp);
Почему бы не использовать shell_exec и scp ?
<?php $output = shell_exec('scp file1.txt dvader@deathstar.com:somedir'); echo "<pre>$output</pre>"; ?>