2016-07-05 89 views
1

請,對不起我的問題來打擾你,但我有兩個問題,我會想有一個專家的輸入。Bssh自動化兩臺Linux服務器之間進行文件傳輸

問題:1

我們已經收到來自用戶的傳入文件,而我們這些文件存儲在它,我想知道其他服務器的兩個基於Linux的服務器有沒有辦法來自動文件傳輸,讓我在這裏解釋自己。

我想知道是否有可能爲作爲用戶上傳的文件,儘快轉移到我們的資產服務器之後,它應該從服務器中刪除。

有沒有什麼可以告訴我用我是新來的Linux世界,但我有一個編程背景,但想着是bash,但真的不知道如何去了解它的任何方法。

問題2:

是否有可能創建一個bash從聯機服務器自動化文件安裝。

謝謝你的幫助將不勝感激。

+1

嗨@semgmp,歡迎來到SO。在你問這裏任何問題之前,預計你會做最少的工作。看看http://www.mpipks-dresden.mpg.de/~mueller/docs/suse10.2/html/opensuse-manual_en/manual/sec.filetrans.copy.html一旦你可以做到這一點,你可以自動化整個過程http://ubuntuforums.org/showthread.php?t=233564 –

回答

0

你的兩個問題古典解是bash腳本和crontab。 bash腳本將自動執行文件傳輸,並且crontab會在您喜歡時安排它。

#!/bin/bash 
scp -r /path/to/upload_files [email protected]_IP:/path/to/upload/files 

以設定的cronjob:

  1. 切換到需要的用戶運行:crontab -e
+0

非常感謝你,我正在做一些研究,但如果你可以發佈一個腳本的例子,它可以幫助 – Semgmp

+0

我編輯我的答案 – Asfbar

1

我會給出一個廣義的答案。

你可以在上傳觸發腳本,或者如果由於某種原因,是不可能的,那麼Linux有幾個notify的API命令可以用來watch目錄。

一旦這樣做了,你將需要傳輸文件。同樣,不止一種方式做到這一點,但一些可能性將是scp,sftp或HTTP POST(可能使用curl)。如果使用scp/sftp,則應使用基於密鑰的身份驗證而不是密碼。

如果(並且只有在我假設的情況下)工作成功,您會希望刪除文件(如果沒有,也許您可​​以使用mail命令向某人抱怨和/或使用mv命令將問題文件移動到另一個目錄中)。

如果你想使用bash自動執行某些的這一點,那麼你應該看看以下一些bash特性:

  • &&如果上述命令成功將執行以下命令(返回與退出的0)
  • ||代碼,如果前面的命令失敗(退出代碼將執行以下命令!= 0)
  • if then fi
  • while do done

最後,我的系統,下面的命令顯示了一些工具,你可能要考慮的:

apt-cache search inotify 
- 
incron - cron-like daemon which handles filesystem events 

inosync - notification-based directory synchronization daemon 

inoticoming - trigger actions when files hit an incoming directory 

inotify-hookable - blocking command-line interface to inotify 

inotify-tools - command-line programs providing a simple interface to inotify 

gamin - File and directory monitoring system 

clsync - live sync tool based on inotify, written in GNU C 

entr - Run arbitrary commands when files change 

lsyncd - daemon to synchronize local directories using rsync 

iwatch - realtime filesystem monitoring program using inotify 

...其中的一個可能只是做你需要的所有東西...

+0

您好,非常感謝您的回答,您可能會發布我可能遵循的腳本示例。 – Semgmp

相關問題