linux - scp指定key




遠程Linux服務器到遠程Linux服務器目錄複製。 怎麼樣? (11)

rsync -avlzp / path / to /文件夾[email protected]:/ path / to / remote /文件夾

從一個遠程Linux服務器複製一個目錄(使用子目錄和文件)到另一個遠程Linux服務器的最佳方法是什麼? 我已經連接到兩個使用SSH客戶端(如膩子)。 我有兩個root權限。


作為非root用戶的理想選擇:

scp -r src $ host:$ path

如果您已經有一些$ host的內容,可以考慮使用帶有ssh的rsync作為隧道。

/艾倫



我想你可以嘗試一下:

rsync -azvu -e ssh [email protected]:/directory/ [email protected]:/directory2/

(我假設你在host0上,你想直接從host1複製到host2)

如果上述不起作用,您可以嘗試:

ssh [email protected] "/usr/bin/rsync -azvu -e ssh /directory/ [email protected]:/directory2/"

在這裡,如果你已經設置了從host1到host2的無密碼的SSH登錄,


登錄到一台機器

$ scp -r / path / to / top /目錄user @ server:/ path / to / copy


那麼,快速回答將看看'scp'manpage,或者rsync - 完全取決於你需要復制什麼。 如果你不得不,你甚至可以做tar-over-ssh:

tar cvf - | ssh server tar xf -

上面提到的scp通常是最好的方法,但是不要忘記遠程目錄規範中的冒號,否則你會在本地機器上獲得源目錄的副本。


如果你真的想要一個精確的副本,你可能也想使用-p開關scp,如果你正在使用。 我發現scp 是從設備讀取的 ,而且我對cpio有問題,所以我個人總是使用tar ,就像這樣:

cd /origin; find . -xdev -depth -not -path ./lost+found -print0 \
| tar --create --atime-preserve=system --null --files-from=- --format=posix \
--no-recursion --sparse | ssh targethost 'cd /target; tar --extract \
--overwrite --preserve-permissions --sparse'

我把這個咒語放在一個文件夾裡,用其他各種方式複製文件。 這是通過SSH複製; 另一個是複製到一個壓縮的存檔,在同一台計算機上複製,並且在SSH太慢時,通過一個未加密的TCP套接字複製。


scp會完成這個工作,但是有一個問題:到第二個遠程目標的連接將使用第一個遠程目標的配置,所以如果你在本地環境中使用.ssh / config,並且你期望rsa和dsa鍵工作,你必須轉發你的代理到第一個遠程主機。


我喜歡通過ssh來管理tar。

tar cf - [directory] ​​| ssh [用戶名] @ [主機名] tar xf - -C [遠程機器上的目的地]

這種方法給你很多選擇。 既然你應該有根ssh禁用複製文件的多個用戶帳戶是困難的,因為你是以普通用戶登錄到遠程服務器。 為了解決這個問題,你可以在遠程盒子上創建一個保存所有權的tar文件。

tar cf - [directory] ​​| ssh [用戶名] @ [主機名]“cat> output.tar”

對於慢速連接,您可以添加壓縮,z為gzip或j為bzip2。

tar cjf - [directory] ​​| ssh [用戶名] @ [主機名]“cat> output.tar.bz2”

tar czf - [directory] ​​| ssh [用戶名] @ [主機名]“cat> output.tar.gz”

tar czf - [directory] ​​| ssh [用戶名] @ [主機名] tar xzf - -C [遠程機器上的目的地]






data-transfer