Searching...
2013年7月26日 星期五

PHP 使用 SCP 傳檔

在實作上可能會需要使用 php 將檔案傳送到另一台伺服器上
則就可以透過下列方式進行



//如果變數type是1,則傳輸ip_inside_range.csv,如果是2,則傳輸ip_outside_range.csv
if($_GET["type"]=="1")
{
$cmd="sudo scp /var/www/html/csv/ip_inside_range.csv id@ip:/home/splunk/var/run/splunk";
}
else
{
$cmd="sudo scp /var/www/html/csv/ip_outside_range.csv id@ip:/home/splunk/var/run/splunk";
}
$output = shell_exec($cmd);
//假設有訊息,就輸出
if(strlen($output)>0)
{
echo "系統訊息:".$output;
}
echo "上傳完畢";
?>



這邊要注意的部分有幾個
1. 要讓網頁端的apache系統服務id擁有sudo scp的權限
vim /etc/sudoer

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
apache ALL=(ALL) NOPASSWD:/usr/bin/scp


2. 開放遠端使用sudo指令的功能

3. 接受上傳檔案的電腦針對上傳的檔案設定檔案權限
這邊因為檔案權限預設為root 644
因此chmod 666 檔案以供一般USER使用

0 意見:

張貼留言