2008-10-28 45 views
5

Tôi muốn thiết lập một CRON chạy một tập lệnh PHP mà lần lượt di chuyển tập tin XML (giữ thông tin không nhạy cảm) từ một máy chủ khác.Cách tốt nhất để di chuyển tệp từ máy chủ này sang máy chủ khác với PHP là gì?

Tôi đã được cấp tên người dùng/mật khẩu thích hợp và muốn sử dụng giao thức SFTP. Các công việc sẽ chạy hàng ngày. Có một tiềm năng là một máy chủ là Linux và một là Windows. Cả hai đều trên các mạng khác nhau.

Cách tốt nhất để di chuyển tệp đó là gì?

Trả lời

6

Nếu cả hai máy chủ sẽ là trên Linux bạn có thể sử dụng rsync cho bất kỳ loại tập tin (php, xml, html, nhị phân, vv). Ngay cả khi một trong số họ sẽ là Windows có cổng rsync cho Windows.

+0

rsync cũng tốt. – wprl

5

Tại sao không sử dụng shell_execscp?

<?php 
    $output = shell_exec('scp file1.txt [email protected]:somedir'); 
    echo "<pre>$output</pre>"; 
?> 
+0

scp là một công cụ rất tiện dụng và mạnh mẽ, nhưng cũng có thể yêu cầu một số cấu hình: http://www.google.com/search?q=+password-less + SSH + đăng nhập –

7

Tại sao bạn không thử sử dụng FTP functions của PHP?

Sau đó, bạn có thể làm điều gì đó như:

// 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); 
Các vấn đề liên quan