亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

Linux操作系統下雙啟動環境的陷阱問題(上)
2007-01-22   中國IT實驗室

重要數據的丟失可能意味著致命的破壞。盡管如此,還是有無數專業人員忽視了對他們的數據的備份。雖然原因可能各不相同,但是,最常見的一個解釋是,執行例行備份確實煩瑣。由于機器擅長于完成普通而重復的任務,因此,自動化備份的過程是降低工作內在的枯燥性和人們與生俱來的拖延傾向的關鍵所在。

如果您使用 Linux,那么您就已經可以使用那些創建定制備份解決方案的極其強大的工具。本文中的方案,可以讓您使用幾乎每個 Linux 發行版本都附帶的開放源代碼工具來執行從簡單的到更高級而且安全的網絡備份。

簡單備份

本文按照一步一步的方法來進行講述,只要您遵循那些基本的步驟,此方法會是非常直觀的。

在研究更高級的分布式備份解決方案之前,讓我們首先來看一個簡單而強大的存檔機制。讓我們來分析一個名為 arc 的方便的腳本,它可以讓我們在 Linux shell 提示符中創建備份快照。

    #!/bin/sh
    tar czvf $1.$(date +%Y%m%d%-H%M%S).tgz $1
    exit $?

  

清單 1. arc shell 腳本 arc 腳本接收一個單獨的文件或目錄名作為參數,創建一個壓縮的存檔文件,同時將當前日期嵌入到生成的存檔文件的名字之中。例如,如果您有一個名為 beoserver 的目錄,您可以調用 arc 腳本,將 beoserver 目錄名傳遞給它以創建一個壓縮的存檔文件,如: beoserver.20040321-014844.tgz

使用 date 命令是為了嵌入一個日期和時間戳以幫助您組織存檔文件。日期的格式是年、月、日、小時、分、秒 —— 雖然秒域的使用有一些多余。查看 data 命令的手冊( man date)來了解其他選項。另外,在清單 1 中,我們向 tar 傳遞了 -v(verbose)選項。這就使得 tar 顯示出它正在存檔的文件。如果您喜歡靜默地進行備份,那么刪除這個 -v 選項。

    $ ls
    arc beoserver
    $ ./arc beoserver
    beoserver/
    beoserver/bookl.dat
    beoserver/beoserver_ab_off
    beoserver/beoserver_ab_on
    $ ls
    arc beoserver beoserver.20040321-014844.tgz

  

清單 2. 存檔 beoserver 目錄高級備份

這個簡單備份是實用的;不過,它仍然包含一個人工備份的過程。行業最佳經驗通常建議將數據備份到多個媒體上,并備份到分開的不同地理位置。中心思想是避免依賴于任何一個單獨的存儲媒體或單獨的位置。

在下一個例子中我們將應對這一挑戰,我們將分析一個如圖 1 所示的假想的分布式網絡,它展示了對兩臺遠程服務器和一臺離線存儲服務器的系統管理。

  圖 1. 分布式網絡

服務器" #1 和 #2 上的備份文件將安全地傳輸到離線存儲服務器上,而且整個分布式備份過程將在沒有人工干涉的情況下定期進行。我們將使用一組標準的工具(開放安全 shell 工具套件(OpenSSH)的一部分),以及磁帶存檔器(tar)和 cron 任務調度服務。我們的全部計劃是,使用 cron 進行調度,使用 shell 程序和 tar 應用程序完成備份過程,使用 OpenSSH 安全 shell(ssh)加密進行遠程訪問、認證、安全 shell 拷貝(scp)以自動完成文件傳輸。要獲得另外的資料請務必查看每個工具的手冊。使用公鑰/私鑰進行安全的遠程訪問

在數字安全的上下文中,密鑰(key)指的是用來加密或解密其他數據片斷的一個數據片斷。公鑰私鑰模式的有趣之處在于,使用公鑰加密的數據,只有用相應的私鑰才可以解密。您可以自由地發布一個公鑰,這樣別人就可以對發送給您的消息進行加密。公鑰/私鑰模式徹底改變了數字安全的原因之一是,發送者和接收者不必再共享一個通用的密碼。除了其他方面的貢獻,公鑰/私鑰加密使用電子商務和其他安全傳輸成為可能。在本文中,我們將創建并使用公鑰和私鑰來創建一個非常安全的分布式備份解決方案。

要進行備份過程的每臺機器都必須運行 OpenSSH 安全 shell 服務(sshd),同時讓 22 端口可以通過任何內部防火墻被訪問。如果您訪問遠程的服務器,那么很有可能您正在使用安全 shell。

我們的目標將是,不需要人工提供密碼就可以安全地訪問機器。一些人認為最簡單的辦法是設置無密碼的訪問:不要這樣做。這樣做不安全。不用那樣,本文中我們將使用的方法可能會占用您大約一個小時的時間,建立起一個與使用“無密碼”帳號同樣方便的系統 —— 不過它是公認非常安全的。

讓我們首先確保 OpenSSH 已經安裝,接下來查看它的版本號。完成本文時,最新的發行的 OpenSSH 是 2004 年 2 月 24 日發布的版本 3.8。您應該考慮使用一個較新的而且穩定的發布版本,至少所用的版本應該要比版本 2.x 新。訪問 OpenSSH Security 網頁以獲得關于特定舊版本的缺陷的細節(請參閱本文后面的 參考資料 中的鏈接)。到目前為止,OpenSSH 是非常穩定的,而且已經證明不存在其他 SSH 工具所報告的很多缺陷。

在 shell 提示符中,輸入 ssh 并給出重要的 V 選項來檢查版本號:

  $ ssh -V   OpenSSH_3.5p1, SSH protocols 1.5/2.0, OpenSSL 0x0090701f

  如果 ssh 返回的版本號大于 2.x,則機器處于相對良好的狀態。無論如何,建議您所有的軟件都使用最新的穩定版本,這對于安全相關的軟件來說尤其重要。

我們的第一個步驟是,使用將會有特權訪問服務器 1 和 2 的帳號登錄到離線存儲服務器機器(見圖 1)。

  $ ssh accountname@somedomain.com

  登錄到離線存儲服務器以后,使用 ssh-keygen 程序并給出 -t dsa 選項來創建一個公鑰/密鑰對。 -t 選項是必須的,用來指定我們要生成的密鑰類型。我們將使用數字簽名算法(Digital Signature Algorithm,DSA),它讓我們可以使用更新的 SSH2 協議。參閱 ssh-keygen 手冊以獲得更多細節。

在 ssh-keygen 執行的過程中,在詢問您口令(passphrase)之前,將提示您輸入 ssh 密鑰存儲的位置。當詢問在何處存儲密鑰時只需要按下回車鍵,然后 ssh-keygen 程序將創建一個名為 .ssh 的隱藏目錄(如果原來不存在),以及兩個文件,一個公鑰文件和一個私鑰文件。

ssh-keygen 的一個有趣特性是,當提示輸入一個口令時,它讓您可以只是簡單地按下回車鍵。如果您沒有給出口令,那么 ssh-keygen 將生成沒有加密的密鑰!如您所想,這不是個好主意。當要求輸入口令時,確保輸入一個足夠長的字符消息,最好包含混合字符而不僅僅是一個簡單的密碼字符串。

    [offsite]:$ ssh-keygen -t dsa
    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/accountname/.ssh/id_dsa):
    Enter passphrase (empty for no passphrase): (enter passphrase)
    Enter same passphrase again: (enter passphrase)
    Your identification has been saved in /home/accountname/.ssh/id_dsa.
    Your public key has been saved in /home/accountname/.ssh/id_dsa.pub.
    The key fingerprint is:     7e:5e:b2:f2:d4:54:58:6a:fa:6b:52:9c:da:a8:53:1b accountname@offsite

  

清單 3. 永遠選擇好的口令由于 ssh-keygen 生成的 .ssh 目錄是一個隱藏的“dot”目錄,所以要給 ls 命令傳入一個 -a 選項來查看新創建的目錄:

  [offsite]$ ls -a   . .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .ssh

  進入隱藏的 .ssh 目錄并列出其內容:

 

  [offsite]$ cd .ssh   [offsite]$ ls -lrt   id_dsa id_dsa.pub

熱詞搜索:

上一篇:Linux下利用VRRP功能實現路由器備份(下)
下一篇:Linux操作系統下雙啟動環境的陷阱問題(中)

分享到: 收藏