[備忘] Linux子目錄含Symbolic link完整複製檔案到另一台主機

今天在處理一個案子,需要將檔案備份到另一台主機。要備份的時候發現各種利用一般的指令的備份方法好像都不大可行。

這個案例的情境大概是這樣的,有一台FileServer因為不斷的擴充容量,所以很多的目錄都是透過Symbolic link放到主目錄中。例如原本的硬碟有三個mount在 /data1、/data2、/data3,舊的資料只需要唯讀就好了,目前在使用的是/data3這個硬碟,為了讓而一般User在主目錄中就可以讀到原本的內容所以就建了Symbolic link。放在/data3/link1、/data3/link2。

如果利用FTP的mput也無法直接處理多層子目錄(沒有類似cp的recursive),所以在沒有client端可以使用的情況下,要傳多層目錄的檔案到另一台主機可以說用FTP根本不可行。

而SCP不支援子目錄是Symbolic link的情況下傳檔案到另外一台電腦(有看到解法是用rsync不過我沒有試成功)。

所以我最後的解決方法是用tar把檔案包起來後,直接透過filter傳ssh到另一台電腦。

Sample:
tar czvhf – /local/dir | ssh ssh_user@remote_host “cat > /dest/dir/filename.tgz

這個指令的重點是 h 參數 (等同於 –dereference),因為許多系統都不支援符號連結,所以下這個參數tar會將Symbolic link內的資料用一般檔案來處理,如此檔案就會確實的被包進tar檔裡面了,filter後面的結果是透過ssh傳檔案到連到目的主機。如此就可以正確的將檔案般去另一台主機嚕。

用什麼去衡量人的價值?

這篇文章是我以前念書的時候某次演講的心得,受限於作業的格式僅限於一張A4的大小,所以很多內容當初都被我刪減掉了。我們這個社會雖然在思想上是教導你「認真努力最重要」,但實際上獎勵的卻是最會「走捷徑、耍小聰明」的所謂「聰明人」,所以努力真的重要嗎?我們對一個人的衡量標準是不是有錯誤?這兩個問題我想是這場演講最重要的兩個部分,下面開始的部分,是當初的作業內容,除了加上一些連結外沒有做太大的修改。 現在我實在太累了(現在時間0:34),所以有空的話我再來補充一下 :D。

Continue reading “用什麼去衡量人的價值?”