掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
目錄

創(chuàng)新互聯(lián)建站企業(yè)建站,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁(yè)設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁(yè)中充分展現(xiàn),通過(guò)對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。
以下是關(guān)于在 Debian 系統(tǒng)上管理二進(jìn)制和文本數(shù)據(jù)的工具及其相關(guān)提示。
| 警告 | |
|---|---|
|
為避免 競(jìng)爭(zhēng)情況,不應(yīng)當(dāng)對(duì)正在進(jìn)行寫操作的設(shè)備和文件,多個(gè)進(jìn)程進(jìn)行不協(xié)調(diào)的寫操作。采用 |
數(shù)據(jù)的安全和它的受控共享有如下幾個(gè)方面。
存檔文件的建立
遠(yuǎn)程存儲(chǔ)訪問(wèn)
復(fù)制
跟蹤修改歷史
促進(jìn)數(shù)據(jù)共享
防止未經(jīng)授權(quán)的文件訪問(wèn)
檢測(cè)未經(jīng)授權(quán)的文件修改
這些可以通過(guò)使用工具集來(lái)實(shí)現(xiàn)。
存檔和壓縮工具
復(fù)制和同步工具
網(wǎng)絡(luò)文件系統(tǒng)
移動(dòng)存儲(chǔ)媒介
安全 shell
認(rèn)證體系
版本控制系統(tǒng)工具
哈希算法和加密工具
以下是 Debian 系統(tǒng)上可用的存檔和壓縮工具的預(yù)覽。
表 10.1. 存檔和壓縮工具列表
| 軟件包 | 流行度 | 大小 | 擴(kuò)展名 | 命令 | 描述 |
|---|---|---|---|---|---|
tar |
V:907, I:999 | 3152 | .tar |
tar(1) |
標(biāo)準(zhǔn)的歸檔工具(默認(rèn)) |
cpio |
V:383, I:998 | 1140 | .cpio |
cpio(1) |
Unix System V 風(fēng)格的歸檔器,與 find(1) 一起使用 |
binutils |
V:148, I:652 | 99 | .ar |
ar(1) |
創(chuàng)建靜態(tài)庫(kù)的歸檔工具 |
fastjar |
V:2, I:22 | 183 | .jar |
fastjar(1) |
Java 歸檔工具(類似 zip) |
pax |
V:11, I:20 | 170 | .pax |
pax(1) |
新的 POSIX 歸檔工具,介于 tar 和 cpio 之間 |
gzip |
V:878, I:999 | 242 | .gz |
gzip(1), zcat(1), … |
GNU LZ77 壓縮工具(默認(rèn)) |
bzip2 |
V:161, I:973 | 120 | .bz2 |
bzip2(1), bzcat(1), … |
Burrows-Wheeler block-sorting 壓縮工具有著比 gzip(1) 更高的壓縮率 (跟 gzip 有著相似的語(yǔ)法但速度比它慢) |
lzma |
V:2, I:23 | 149 | .lzma |
lzma(1) |
LZMA 壓縮工具有著比 gzip(1) 更高的壓縮率(不推薦) |
xz-utils |
V:436, I:980 | 612 | .xz |
xz(1), xzdec(1), … |
XZ 壓縮工具有著比 bzip2(1) 更高的壓縮率(壓縮速度慢于 gzip 但是比 bzip2 快; LZMA 壓縮工具的替代品) |
zstd |
V:7, I:34 | 1898 | .zstd |
zstd(1), zstdcat(1), … |
Zstandard 快速無(wú)損壓縮工具 |
p7zip |
V:83, I:468 | 987 | .7z |
7zr(1), p7zip(1) |
有著更高壓縮率的 7-zip 文件歸檔器(LZMA 壓縮) |
p7zip-full |
V:116, I:478 | 4664 | .7z |
7z(1), 7za(1) |
有著更高壓縮率的 7-Zip 文件歸檔器(LZMA 壓縮和其他) |
lzop |
V:14, I:120 | 164 | .lzo |
lzop(1) |
LZO 壓縮工具有著比 gzip(1) 更高的壓縮和解壓縮速度 (跟 gzip 有著相似的語(yǔ)法但壓縮率比它低) |
zip |
V:49, I:414 | 623 | .zip |
zip(1) |
InfoZip:DOS 歸檔器和壓縮工具 |
unzip |
V:142, I:788 | 385 | .zip |
unzip(1) |
InfoZIP:DOS 解檔器和解壓縮工具 |
| 警告 | |
|---|---|
|
除非你知道將會(huì)發(fā)生什么,否則不要設(shè)置 " |
gzipped tar(1) 歸檔器用于擴(kuò)展名是 ".tgz" 或者 ".tar.gz" 的文件。
xz-compressed tar(1) 歸檔器用于擴(kuò)展名是 ".txz" 或者 ".tar.xz" 的文件。
FOSS 工具,例如 tar(1),中的主流壓縮方法已經(jīng)按如下所示的遷移: gzip → bzip2 → xz
cp(1),scp(1) 和 tar(1) 工具可能并不適用于一些特殊的文件。cpio(1) 工具的適用范圍是最廣的。
cpio(1) 是被設(shè)計(jì)為與 find(1) 和其它命令一起使用,適合于創(chuàng)建備份腳本的場(chǎng)景,因此,腳本的文件選擇部分能夠被獨(dú)立測(cè)試。
Libreoffice 數(shù)據(jù)文件的內(nèi)部結(jié)構(gòu)是 ".jar" 文件,它也可以使用 unzip 工具來(lái)打開。
事實(shí)上跨平臺(tái)支持最好的存檔工具是 zip。按照“zip -rX”的方式調(diào)用可以獲得最大的兼容性。如果最大文件大小需要納入考慮范圍,請(qǐng)同時(shí)配合“-s”選項(xiàng)使用。
以下是 Debian 系統(tǒng)上的可用的簡(jiǎn)單復(fù)制和備份工具的預(yù)覽。
表 10.2. 復(fù)制和同步工具列表
| 軟件包 | 流行度 | 大小 | 工具 | 功能 |
|---|---|---|---|---|
coreutils |
V:898, I:999 | 17372 | GNU cp | 復(fù)制本地文件和目錄("-a" 參數(shù)實(shí)現(xiàn)遞歸) |
openssh-client |
V:828, I:997 | 5650 | scp | 復(fù)制遠(yuǎn)端文件和目錄(客戶端,"-r" 參數(shù)實(shí)現(xiàn)遞歸) |
openssh-server |
V:709, I:832 | 1806 | sshd | 復(fù)制遠(yuǎn)端文件和目錄(遠(yuǎn)程服務(wù)器) |
rsync |
V:280, I:566 | 737 | 單向遠(yuǎn)程同步和備份 | |
unison |
V:3, I:16 | 14 | 雙向遠(yuǎn)程同步和備份 |
在復(fù)制文件的時(shí)候, rsync(8) 比其他工具提供了更多的特性。
差分傳輸算法只會(huì)發(fā)送源文件與已存在的目標(biāo)文件之間的差異部分
快速檢查算法 (默認(rèn)) 會(huì)查找大小或者最后的修改時(shí)間有變化的文件
"--exclude" 和 "--exclude-from" 選項(xiàng)類似于 tar(1)
在源目錄中添加反斜杠的語(yǔ)法能夠避免在目標(biāo)文件中創(chuàng)建額外的目錄級(jí)別。
| 提示 | |
|---|---|
|
在 表 10.14 “其它版本控制系統(tǒng)工具列表” 中的版本控制系統(tǒng) (VCS) 可以被認(rèn)為是多路拷貝和同步工具。 |
以下是用不同的工具壓縮和解壓縮整個(gè) "./source" 目錄中的內(nèi)容。
GNU tar(1):
$ tar -cvJf archive.tar.xz ./source $ tar -xvJf archive.tar.xz
或者,如下所示。
$ find ./source -xdev -print0 | tar -cvJf archive.tar.xz --null -F -
cpio(1):
$ find ./source -xdev -print0 | cpio -ov --null > archive.cpio; xz archive.cpio $ zcat archive.cpio.xz | cpio -i
如下是用不同的工具復(fù)制整個(gè) "./source" 目錄中的內(nèi)容。
本地復(fù)制: "./source" 目錄 → "/dest" 目錄
遠(yuǎn)程復(fù)制:本地主機(jī)上的 "./source" 目錄 → "[email protected]" 主機(jī)上的 "/dest" 目錄
rsync(8):
# cd ./source; rsync -aHAXSv . /dest # cd ./source; rsync -aHAXSv . [email protected]:/dest
你能夠選擇使用“源目錄上的反斜杠”語(yǔ)法。
# rsync -aHAXSv ./source/ /dest # rsync -aHAXSv ./source/ [email protected]:/dest
或者,如下所示。
# cd ./source; find . -print0 | rsync -aHAXSv0 --files-from=- . /dest # cd ./source; find . -print0 | rsync -aHAXSv0 --files-from=- . [email protected]:/dest
GNU cp(1) 和 openSSH scp(1):
# cd ./source; cp -a . /dest # cd ./source; scp -pr . [email protected]:/dest
GNU tar(1):
# (cd ./source && tar cf - . ) | (cd /dest && tar xvfp - ) # (cd ./source && tar cf - . ) | ssh [email protected] '(cd /dest && tar xvfp - )'
cpio(1):
# cd ./source; find . -print0 | cpio -pvdm --null --sparse /dest
你能夠在所有包含 "." 的例子里用 "foo" 替代 ".",這樣就可以從 "./source/foo" 目錄復(fù)制文件到 "/dest/foo" 目錄。
在所有包含 "." 的列子里,你能夠使用絕對(duì)路徑 "/path/to/source/foo" 來(lái)代替 ".",這樣可以去掉 "cd ./source;". 如下所示,這些文件會(huì)根據(jù)工具的不同,拷貝到不同的位置。
"/dest/foo": rsync(8), GNU cp(1), 和 scp(1)
"/dest/path/to/source/foo": GNU tar(1), 和 cpio(1)
| 提示 | |
|---|---|
|
|
find(1) 被用作從歸檔中篩選文件也被用作拷貝命令 (參見(jiàn)第 10.1.3 節(jié) “歸檔語(yǔ)法”和第 10.1.4 節(jié) “復(fù)制語(yǔ)法”) 或者用于 xargs(1) (參見(jiàn)第 9.4.9 節(jié) “使用文件循環(huán)來(lái)重復(fù)一個(gè)命令”)。通過(guò) find 的命令行參數(shù)能夠使其功能得到加強(qiáng)。
以下是 find(1)基本語(yǔ)法的總結(jié)。
find 條件參數(shù)的運(yùn)算規(guī)則是從左到右。
一旦輸出是確定的,那么運(yùn)算就會(huì)停止。
“邏輯 OR" (由條件之間的 "-o" 參數(shù)指定的)優(yōu)先級(jí)低于 "邏輯 AND" (由 "-a" 參數(shù)指定或者條件之間沒(méi)有任何參數(shù))。
”邏輯 NOT" (由條件前面的 "!" 指定) 優(yōu)先級(jí)高于 “邏輯 AND”。
"-prune" 總是返回邏輯 TRUE 并且如果這個(gè)目錄是存在的,將會(huì)搜索除這個(gè)目錄以外的文件。
"-name" 選項(xiàng)匹配帶有 shell 通配符 (參見(jiàn)第 1.5.6 節(jié) “Shell 通配符”) 的文件名但也匹配帶有類似 "*" 和 "?" 元字符的 ."。(新的 POSIX 特性)
"-regex" 匹配整個(gè)文件路徑,默認(rèn)采用 emacs 風(fēng)格的 BRE (參見(jiàn)第 1.6.2 節(jié) “正則表達(dá)式”)。
"-size" 根據(jù)文件大小來(lái)匹配 (值前面帶有 "+" 號(hào)匹配更大的文件,值前面帶有 "-" 號(hào)匹配更小的文件)
"-newer" 參數(shù)匹配比參數(shù)名中指定的文件還要新的文件。
"-print0" 參數(shù)總是返回邏輯 TRUE 并將完整文件名 (null terminated) 打印到標(biāo)準(zhǔn)輸出設(shè)備上。
如下是 find(1) 語(yǔ)法格式。
# find /path/to \
-xdev -regextype posix-extended \
-type f -regex ".*\.cpio|.*~" -prune -o \
-type d -regex ".*/\.git" -prune -o \
-type f -size +99M -prune -o \
-type f -newer /path/to/timestamp -print0
這些命令會(huì)執(zhí)行如下動(dòng)作。
查找 "/path/to" 下的所有文件
限定全局查找的文件系統(tǒng)并且使用的是 ERE (參見(jiàn)第 1.6.2 節(jié) “正則表達(dá)式”)
通過(guò)停止處理的方式來(lái)排除匹配 ".*\.cpio" 或 ".*~" 正則表達(dá)式的文件
通過(guò)停止處理的方式來(lái)排除匹配 ".*/\.git" 正則表達(dá)式的目錄
通過(guò)停止處理的方式來(lái)排除比 99MB (1048576字節(jié)單元) 更大的文件
顯示文件名,滿足以上搜索條件并且比 "/path/to/timestamp" 新的文件
請(qǐng)留心以上例子中的 "-prune -o" 排除文件的習(xí)慣用法。
| 注意 | |
|---|---|
|
對(duì)于非 Debian 系的 Unix-like 系統(tǒng),有些參數(shù)可能不被 |
為重要的數(shù)據(jù)存檔尋找 存儲(chǔ)設(shè)備 時(shí),你應(yīng)該注意它們的局限性。對(duì)于小型的個(gè)人數(shù)據(jù)備份,我使用品牌公司的 CD-R 和 DVD-R 然后把它放在陰涼、干燥、清潔的地方。(專業(yè)的一般使用磁帶存檔介質(zhì))
| 注意 | |
|---|---|
|
防火安全是對(duì)于紙質(zhì)文檔來(lái)說(shuō)的,大多數(shù)的計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)媒介耐熱性比紙差。我經(jīng)常依賴存儲(chǔ)在多個(gè)安全地點(diǎn)的加密拷貝。 |
網(wǎng)上(主要是來(lái)源于供應(yīng)商信息)可以查看存儲(chǔ)介質(zhì)的最大使用壽命。
大于100年:用墨水的無(wú)酸紙
100年:光盤存儲(chǔ)(CD/DVD,CD/DVD-R)
30年:磁帶存儲(chǔ)(磁帶,軟盤)
20年:相變光盤存儲(chǔ)(CD-RW)
這不包括由于人為導(dǎo)致的機(jī)械故障等等。
網(wǎng)上(主要來(lái)源于供應(yīng)商信息)可以查看存儲(chǔ)介質(zhì)的最大的寫次數(shù)。
大于250,000次:硬盤驅(qū)動(dòng)器
大于10,000次:閃存
1,000次:CD/DVD-RW
1次:CD/DVD-R,紙
| 小心 | |
|---|---|
|
這里的存儲(chǔ)壽命和寫次數(shù)的數(shù)據(jù)不應(yīng)該被用來(lái)決定任何用于關(guān)鍵數(shù)據(jù)的存儲(chǔ)媒介,請(qǐng)翻閱制造商提供的特定產(chǎn)品的說(shuō)明。 |
| 提示 | |
|---|---|
|
因?yàn)?CD/DVD-R 和 紙只能寫一次,它們從根本上阻止了因?yàn)橹貙憣?dǎo)致的數(shù)據(jù)意外丟失。這是優(yōu)點(diǎn)! |
| 提示 | |
|---|---|
|
如果你需要更快更頻繁的進(jìn)行大數(shù)據(jù)備份,那么通過(guò)高速網(wǎng)絡(luò)連接的遠(yuǎn)端主機(jī)上的硬盤來(lái)實(shí)現(xiàn)備份,可能是唯一可行的方法。 |
| 提示 | |
|---|---|
|
如果你在使用一個(gè)可重復(fù)寫入的介質(zhì)作為你的備份介質(zhì),使用支持只讀快照的 btrfs 或 zfs 文件系統(tǒng),也許是一個(gè)好注意。 |
可移動(dòng)存儲(chǔ)設(shè)備可能是以下的任何一種。
USB 閃存盤
硬盤驅(qū)動(dòng)器
光盤驅(qū)動(dòng)器
數(shù)碼相機(jī)
數(shù)字音樂(lè)播放器
它們可以通過(guò)以下的方式來(lái)進(jìn)行連接。
USB
IEEE 1394 / FireWire
PC 卡
像 GNOME 和 KDE 這樣的現(xiàn)代桌面環(huán)境能夠在 "/etc/fstab" 文件中沒(méi)有匹配條目的時(shí)候,自動(dòng)掛載這些可移動(dòng)設(shè)備。
udisks2 包提供了守護(hù)進(jìn)程和相關(guān)的實(shí)用程序來(lái)掛載和卸載這些設(shè)備。
D-bus 創(chuàng)建事件來(lái)觸發(fā)自動(dòng)處理。
PolicyKit 提供了所需的特權(quán)。
| 提示 | |
|---|---|
|
|
| 提示 | |
|---|---|
|
只有當(dāng)這些可移動(dòng)設(shè)備沒(méi)有在 " |
現(xiàn)代桌面環(huán)境下的掛載點(diǎn)被選為 "/media/username/disk_label",它可以被如下所示的來(lái)定制。
FAT 格式的文件系統(tǒng)使用 mlabel(1) 命令
ISO9660 文件系統(tǒng)使用帶有 "-V" 選項(xiàng)的 genisoimage(1) 命令
ext2/ext3/ext4 文件系統(tǒng)使用帶有 "-L" 選項(xiàng)的 tune2fs(1) 命令
| 提示 | |
|---|---|
|
掛載時(shí)可能需要提供編碼選項(xiàng)(參見(jiàn) 第 8.1.3 節(jié) “文件名編碼”)。 |
| 提示 | |
|---|---|
|
在圖形界面菜單上移除文件系統(tǒng),可能會(huì)移除它的動(dòng)態(tài)設(shè)備節(jié)點(diǎn)例如 " |
當(dāng)你通過(guò)可移動(dòng)存儲(chǔ)設(shè)備與其他系統(tǒng)分享數(shù)據(jù)的時(shí)候,你應(yīng)該先把它格式化為被兩種操作系統(tǒng)都支持的通用的 文件系統(tǒng)。下面是文件系統(tǒng)的列表。
表 10.3. 典型使用場(chǎng)景下可移動(dòng)存儲(chǔ)設(shè)備可選擇的文件系統(tǒng)列表
| 文件系統(tǒng)名 | 典型使用場(chǎng)景 |
|---|---|
| FAT12 | 軟盤(<32MiB)上跨平臺(tái)的數(shù)據(jù)分享 |
| FAT16 | 在小硬盤(<2GiB)上的跨平臺(tái)的數(shù)據(jù)分享 |
| FAT32 | 在大硬盤(<8TiB,被 MS Windows95 OSR2 以上的操作系統(tǒng)所支持) 上的跨平臺(tái)的數(shù)據(jù)分享 |
| exFAT | 在大硬盤類設(shè)備上跨平臺(tái)共享數(shù)據(jù)(<512TiB,被 WindowsXP, Mac OS X Snow Leopard 10.6.5 和 Linux 內(nèi)核 5.4 版本以上的操作系統(tǒng)所支持) |
| NTFS | 在大硬盤類設(shè)備上的跨平臺(tái)共享數(shù)據(jù) (在 MS Windows NT 和后續(xù)版本原生支持;在 Linux 上,通過(guò)使用 FUSE 的 NTFS-3G 支持。) |
| ISO9660 | 在 CD-R 和 DVD+/-R 上的跨平臺(tái)的靜態(tài)數(shù)據(jù)分享 |
| UDF | CD-R 和 DVD+/-R (新)上的增量數(shù)據(jù)寫入 |
| MINIX | 軟盤上磁盤空間高利用率的 unix 文件數(shù)據(jù)存儲(chǔ) |
| ext2 | 在裝有老舊 linux 系統(tǒng)的硬盤上的數(shù)據(jù)分享 |
| ext3 | 在裝有老舊 linux 系統(tǒng)的硬盤上的數(shù)據(jù)分享 |
| ext4 | 在裝有較新的 linux 系統(tǒng)的硬盤上的數(shù)據(jù)分享 |
| btrfs | 使用只讀快照在裝有較新的 Linux 系統(tǒng)的硬盤上共享數(shù)據(jù) |
| 提示 | |
|---|---|
|
查看第 9.9.1 節(jié) “使用 dm-crypt/LUKS 加密移動(dòng)磁盤”來(lái)獲得關(guān)于使用設(shè)備級(jí)加密的跨平臺(tái)的數(shù)據(jù)共享的信息。 |
FAT 文件系統(tǒng)被絕大多數(shù)的現(xiàn)代操作系統(tǒng)支持,它對(duì)于通過(guò)可移動(dòng)硬盤進(jìn)行的數(shù)據(jù)交換是非常有用的。
當(dāng)格式化像裝有 FAT 文件系統(tǒng)的跨平臺(tái)數(shù)據(jù)共享的可移動(dòng)設(shè)備時(shí),以下應(yīng)該是保險(xiǎn)的選擇。
用 fdisk(8),cfdisk(8) 或者 parted(8) 命令(參見(jiàn)第 9.6.2 節(jié) “硬盤分區(qū)配置”)把它們格式化為單個(gè)的主分區(qū)并對(duì)把它做如下標(biāo)記。
標(biāo)記小于 2GB 的 FAT 設(shè)備為 字符"6"。
標(biāo)記更大的 FAT32 設(shè)備為字符 "c"。
如下所示是用 mkfs.vfat(8) 命令格式化主分區(qū)的。
它的設(shè)備名字,例如 "/dev/sda1" 用于 FAT16 設(shè)備
明確的選項(xiàng)和它的設(shè)備名,例如 "-F 32 /dev/sda1" 用于 FAT32 設(shè)備
當(dāng)使用 FAT 或 ISO9660 文件系統(tǒng)分享數(shù)據(jù)時(shí),如下是需要注意的安全事項(xiàng)。
用 tar(1),或cpio(1)命令壓縮文件,目地是為了保留文件名,符號(hào)鏈接,原始的文件權(quán)限和文件所有者信息。
用 split(1) 命令把壓縮文件分解成若干小于 2GiB的小文件,使其免受文件大小限制。
加密壓縮文件保護(hù)其內(nèi)容免受未經(jīng)授權(quán)的訪問(wèn)。
| 注意 | |
|---|---|
|
因?yàn)?FAT 文件系統(tǒng)的設(shè)計(jì),最大的文件大小為 |
| 注意 | |
|---|---|
|
微軟系統(tǒng)本身并不建議在超過(guò) 200MB 的分區(qū)或者驅(qū)動(dòng)器上使用 FAT。他們的 " Overview of FAT, HPFS, and NTFS File Systems 這篇文章突出顯示了微軟系統(tǒng)的缺點(diǎn),例如低效的磁盤空間利用。當(dāng)然了,我們?cè)?Linux 系統(tǒng)上還是應(yīng)該使用 ext4 文件系統(tǒng)。 |
| 提示 | |
|---|---|
|
有關(guān)文件系統(tǒng)和訪問(wèn)文件系統(tǒng)的更多信息,請(qǐng)參考 "Filesystems HOWTO"。 |
當(dāng)使用網(wǎng)絡(luò)來(lái)分享數(shù)據(jù)的時(shí)候,你應(yīng)該使用通用的服務(wù)。這里有一些提示。
表 10.4. 典型使用場(chǎng)景下可選擇的網(wǎng)絡(luò)服務(wù)列表
| 網(wǎng)絡(luò)服務(wù) | 典型使用場(chǎng)景描述 |
|---|---|
| SMB/CIFS 用 Samba 掛載網(wǎng)絡(luò)文件系統(tǒng) | 通過(guò) “Microsoft Windows 網(wǎng)絡(luò)” 分享文件,參見(jiàn) smb.conf(5) 和 官方 Samba 3.x.x 指導(dǎo)和參考手冊(cè)(The Official Samba 3.x.x HOWTO and Reference Guide) 或 samba-doc 軟件包 |
| NFS 用 Linux 內(nèi)核掛載網(wǎng)絡(luò)文件系統(tǒng) | 通過(guò) “Unix/Linux 網(wǎng)絡(luò)" 分享文件,參見(jiàn) exports(5) 和 Linux NFS-HOWTO |
| HTTP 服務(wù) | 在 web 服務(wù)器/客戶端之間分享文件 |
| HTTPS 服務(wù) | 在有加密的安全套接層 (SSL) 或者安全傳輸層 (TLS) 的網(wǎng)絡(luò)服務(wù)器/客戶端中分享文件 |
| FTP 服務(wù) | 在 FTP 服務(wù)器/客戶端之間分享文件 |
盡管對(duì)于文件分享來(lái)說(shuō),通過(guò)網(wǎng)絡(luò)掛載文件系統(tǒng)和傳輸文件是相當(dāng)方便的,但這可能是不安全的。它們的網(wǎng)絡(luò)連接必須通過(guò)如下所示的加強(qiáng)安全性。
用 SSL/TLS 加密
建立 SSH 通道
建立 VPN 通道
網(wǎng)絡(luò)之間需要有安全的防火墻
參見(jiàn) 第 6.5 節(jié) “其它網(wǎng)絡(luò)應(yīng)用服務(wù)” 和 第 6.6 節(jié) “其它網(wǎng)絡(luò)應(yīng)用客戶端”。
我們都熟知計(jì)算機(jī)有時(shí)會(huì)出問(wèn)題,或者由于人為的錯(cuò)誤導(dǎo)致系統(tǒng)和數(shù)據(jù)損壞。備份和恢復(fù)操作是成功的系統(tǒng)管理中非常重要的一部分。可能有一天你的電腦就會(huì)出問(wèn)題。
| 提示 | |
|---|---|
|
保持你的備份系統(tǒng)簡(jiǎn)潔并且經(jīng)常備份你的系統(tǒng),有備份數(shù)據(jù)比你采用的備份方法的技術(shù)先進(jìn)要重要的多。 |
有3個(gè)關(guān)鍵的因素決定實(shí)際的備份和恢復(fù)策略。
知道要備份和恢復(fù)什么。
你自己創(chuàng)建的數(shù)據(jù)文件:在 "~/" 下的數(shù)據(jù)
你使用的應(yīng)用程序創(chuàng)建的數(shù)據(jù)文件:在 "/var/" 下的數(shù)據(jù)(除了 "/var/cache/","/var/run/" 和 "/var/tmp/")
系統(tǒng)配置文件:在 "/etc/” 下的數(shù)據(jù)
本地程序:在 "/usr/local/" 或 "/opt/" 下的數(shù)據(jù)
系統(tǒng)安裝信息:關(guān)鍵步驟 (分區(qū),...) 的純文本備忘錄
驗(yàn)證數(shù)據(jù)結(jié)果:通過(guò)實(shí)驗(yàn)性的恢復(fù)操作來(lái)預(yù)先驗(yàn)證
用戶進(jìn)程的 Cron 工作,文件在 "/var/spool/cron/crontabs" 目錄,并且重啟 cron(8)。參見(jiàn)第 9.4.14 節(jié) “定時(shí)任務(wù)安排”來(lái)獲得關(guān)于 cron(8) 和 crontab(1) 的信息。
用戶進(jìn)程的 Systemd 計(jì)時(shí)器工作:文件在 "~/.config/systemd/user" 目錄。參見(jiàn) systemd.timer(5) 和 systemd.service(5)。
用戶進(jìn)程的自動(dòng)啟動(dòng)工作:文件在 "~/.config/autostart" 目錄。參見(jiàn) Desktop Application Autostart Specification。
知道怎樣去備份和恢復(fù)。
安全的數(shù)據(jù)存儲(chǔ):保護(hù)其免于覆蓋和系統(tǒng)故障
經(jīng)常備份:有計(jì)劃的備份
冗余備份:數(shù)據(jù)鏡像
傻瓜式操作:?jiǎn)蝹€(gè)簡(jiǎn)單命令備份
評(píng)估涉及的風(fēng)險(xiǎn)和成本。
數(shù)據(jù)丟失的風(fēng)險(xiǎn)
數(shù)據(jù)至少是應(yīng)該在不同的磁盤分區(qū)上,最好是在不同的磁盤和機(jī)器上,來(lái)承受文件系統(tǒng)發(fā)生的損壞。重要數(shù)據(jù)最好存儲(chǔ)在一個(gè)只讀文件系統(tǒng)上。[4]
數(shù)據(jù)非法訪問(wèn)的風(fēng)險(xiǎn)
敏感的身份數(shù)據(jù),比如 "/etc/ssh/ssh_host_*_key", "~/.gnupg/*", "~/.ssh/*", "~/.local/share/keyrings/*", "/etc/passwd", "/etc/shadow", "popularity-contest.conf", "/etc/ppp/pap-secrets", and "/etc/exim4/passwd.client" 應(yīng)當(dāng)使用加密備份。[5] (參見(jiàn) 第 9.9 節(jié) “數(shù)據(jù)加密提示”。)
即使在信任的系統(tǒng)上,也不能夠硬編碼系統(tǒng)登錄密碼或者加密密碼到任何腳本里面。(參見(jiàn) 第 10.3.6 節(jié) “密碼密鑰環(huán)”。)
數(shù)據(jù)丟失的方式及其可能性
硬件(特別是硬盤)將會(huì)損壞
文件系統(tǒng)可能會(huì)損壞,里面的數(shù)據(jù)可能被丟失
對(duì)違規(guī)安全訪問(wèn)而言,遠(yuǎn)程存儲(chǔ)系統(tǒng)不能夠被信任
弱的密碼保護(hù)能夠被輕松的破解
文件權(quán)限系統(tǒng)可以被破解
備份所需的資源:人力,硬件,軟件,…
使用 cron 任務(wù)或者 systemd 計(jì)時(shí)器任務(wù)來(lái)自動(dòng)化調(diào)度備份工作
| 注意 | |
|---|---|
|
除非你知道自己做的是什么,否則不要備份 |
| 注意 | |
|---|---|
|
當(dāng)備份數(shù)據(jù)的時(shí)候,你可能希望停止一些應(yīng)用程序的守護(hù)進(jìn)程例如 MTA(參見(jiàn)第 6.2.4 節(jié) “郵件傳輸代理 (MTA)”)。 |
以下是 Debian 系統(tǒng)上值得注意的實(shí)用備份程序套件的列表。
表 10.5. 實(shí)用備份程序套件列表
| 軟件包 | 流行度 | 大小 | 說(shuō)明 |
|---|---|---|---|
dump |
V:1, I:5 | 351 | 4.4 BSD dump(8) 和 restore(8) 命令用于 ext2/ext3/ext4 文件系統(tǒng) |
xfsdump |
V:0, I:8 | 865 | 在 GNU/Linux 和 IRIX 上用 xfsdump(8) 和 xfsrestore(8) 命令來(lái)備份和恢復(fù) XFS 文件系統(tǒng) |
backupninja |
V:3, I:4 | 367 | 輕量的可擴(kuò)展的 meta-backup 系統(tǒng) |
bacula-common |
V:10, I:13 | 2158 | Bacula: 網(wǎng)絡(luò)數(shù)據(jù)備份,恢復(fù)和核查-常見(jiàn)的支持文件 |
bacula-client |
I:3 | 183 | Bacula: 網(wǎng)絡(luò)數(shù)據(jù)備份,恢復(fù)和核查-客戶端元軟件包 |
bacula-console |
V:1, I:4 | 107 | Bacula: 網(wǎng)絡(luò)數(shù)據(jù)備份,恢復(fù)和核查-文本終端 |
bacula-server |
I:1 | 183 | Bacula: 網(wǎng)絡(luò)數(shù)據(jù)備份,恢復(fù)和核查-服務(wù)器端元軟件包 |
amanda-common |
V:0, I:2 | 10090 | Amanda: 馬里蘭大學(xué)開發(fā)的高級(jí)自動(dòng)化網(wǎng)絡(luò)磁盤歸檔器(庫(kù)) |
amanda-client |
V:0, I:2 | 1149 | Amanda: 馬里蘭大學(xué)開發(fā)的高級(jí)自動(dòng)化網(wǎng)絡(luò)磁盤歸檔器(客戶端) |
amanda-server |
V:0, I:0 | 1117 | Amanda: 馬里蘭大學(xué)開發(fā)的高級(jí)自動(dòng)化網(wǎng)絡(luò)磁盤歸檔器(服務(wù)器端) |
backup-manager |
V:0, I:1 | 571 | 命令行備份工具 |
backup2l |
V:0, I:1 | 115 | 用于可掛載媒介 (基于磁盤的) 的低維護(hù)的備份/恢復(fù)工具 |
backuppc |
V:2, I:3 | 3184 | BackupPC 是用于備份 PC 機(jī)數(shù)據(jù)(基于磁盤)的高性能的企業(yè)級(jí)工具 |
duplicity |
V:15, I:36 | 1867 | (遠(yuǎn)程) 增量備份 |
flexbackup |
V:0, I:0 | 243 | (遠(yuǎn)程) 增量備份 |
rdiff-backup |
V:5, I:13 | 769 | (遠(yuǎn)程) 增量備份 |
restic |
V:2, I:4 | 21080 | (遠(yuǎn)程) 增量備份 |
slbackup |
V:0, I:0 | 151 | (遠(yuǎn)程) 增量備份 |
備份工具有各自的專用的用途。
Mondo Rescue 是一個(gè)備份系統(tǒng),它能夠方便的從備份 CD/DVD 等設(shè)備中快速恢復(fù)整個(gè)系統(tǒng),而不需要經(jīng)過(guò)常規(guī)的系統(tǒng)安裝過(guò)程。
Bacula,Amanda 和 BackupPC 是全功能的備份實(shí)用套件,主要用于聯(lián)網(wǎng)的定期備份。
定期備份用戶數(shù)據(jù),可以通過(guò)一個(gè)簡(jiǎn)單的腳本實(shí)現(xiàn) (第 10.2.3 節(jié) “個(gè)人備份”)。
第 10.1.1 節(jié) “存檔和壓縮工具” 和 第 10.1.2 節(jié) “復(fù)制和同步工具” 描述的基礎(chǔ)工具能夠通過(guò)自定義腳本來(lái)幫助系統(tǒng)備份。這些腳本的功能可以通過(guò)如下的工具來(lái)增強(qiáng)。
restic 軟件包能夠增量備份(遠(yuǎn)程)。
rdiff-backup 軟件包能夠增量備份(遠(yuǎn)程)。
dump 軟件包用于高效增量的歸檔和恢復(fù)整個(gè)文件系統(tǒng)。
| 提示 | |
|---|---|
|
參見(jiàn) " |
對(duì)于運(yùn)行 testing 套件的個(gè)人 Debian 桌面系統(tǒng)來(lái)說(shuō),只需要保護(hù)個(gè)人數(shù)據(jù)和關(guān)鍵數(shù)據(jù)。我不管怎樣每年都會(huì)重新安裝一次系統(tǒng)。因此沒(méi)理由去備份整個(gè)系統(tǒng)或者安裝全功能的備份實(shí)用程序。
與此同時(shí),有一定頻率的最近的個(gè)人數(shù)據(jù)和系統(tǒng)配置快照的備份,加上偶爾個(gè)人數(shù)據(jù)的全備份,是非常有價(jià)值的。
我經(jīng)常使用一個(gè)簡(jiǎn)單的 shell 腳本 bss 來(lái)制作這些快照和備份。這個(gè)腳本是一個(gè)短小的 shell,使用標(biāo)準(zhǔn)工具:btrfs 子卷快照、 rsync。對(duì)于加密的數(shù)據(jù),磁盤鏡像由 fallocate(1) 創(chuàng)建并由 cryptsetup(8) 配置。
| 提示 | |
|---|---|
|
你能夠用 " |
數(shù)據(jù)安全基礎(chǔ)設(shè)施是數(shù)據(jù)加密,訊息摘要和簽名工具的結(jié)合。
表 10.6. 數(shù)據(jù)安全基礎(chǔ)工具列表
| 軟件包 | 流行度 | 大小 | 命令 | 說(shuō)明 |
|---|---|---|---|---|
gnupg |
V:543, I:931 | 864 | gpg(1) |
GNU 隱私衛(wèi)士 - OpenPGP 加密和簽名工具 |
gpgv |
V:873, I:999 | 882 | gpgv(1) |
GNU 隱私衛(wèi)士 - 簽名驗(yàn)證工具 |
paperkey |
V:1, I:14 | 58 | paperkey(1) |
從 OpenPGP 私鑰里面,僅僅導(dǎo)出私密信息 |
cryptsetup |
V:16, I:79 | 448 | cryptsetup(8), … |
dm-crypt 塊設(shè)備加密支持 LUKS 工具 |
coreutils |
V:898, I:999 | 17372 | md5sum(1) |
計(jì)算與校驗(yàn) MD5 訊息摘要 |
coreutils |
V:898, I:999 | 17372 | sha1sum(1) |
計(jì)算與校驗(yàn) SHA1 訊息摘要 |
openssl |
V:810, I:994 | 1465 | openssl(1ssl) |
使用 "openssl dgst" (OpenSSL)計(jì)算信息摘要 |
libsecret-tools |
V:1, I:10 | 44 | secret-tool(1) |
存儲(chǔ)和取回密碼 (CLI) |
seahorse |
V:76, I:254 | 7812 | seahorse(1) |
密鑰管理工具(GNOME) |
參見(jiàn) 第 9.9 節(jié) “數(shù)據(jù)加密提示” 的 dm-crypt 和 fscrypt,它們通過(guò) Linux 內(nèi)核模塊實(shí)現(xiàn)了自動(dòng)數(shù)據(jù)加密架構(gòu)。
如下是 GNU 隱私衛(wèi)士 基本的密鑰管理命令。
表 10.7. GNU 隱私衛(wèi)士密鑰管理命令的列表
| 命令 | 說(shuō)明 |
|---|---|
gpg --gen-key |
生成一副新的密鑰對(duì) |
gpg --gen-revoke my_user_ID |
生成 my_user_ID 的一份吊銷證書 |
gpg --edit-key user_ID |
交互式的編輯密鑰,輸入 "help" 來(lái)獲得幫助信息 |
gpg -o file --export |
把所有的密鑰輸出到文件 |
gpg --import file |
從文件導(dǎo)入密鑰 |
gpg --send-keys user_ID |
發(fā)送 user_ID 的公鑰到公鑰服務(wù)器 |
gpg --recv-keys user_ID |
從公鑰服務(wù)器下載 user_ID 的公鑰 |
gpg --list-keys user_ID |
列出 user_ID 的所有密鑰 |
gpg --list-sigs user_ID |
列出 user_ID 的簽字 |
gpg --check-sigs user_ID |
檢查 user_ID 密鑰簽字 |
gpg --fingerprint user_ID |
檢查 user_ID 的指紋 |
gpg --refresh-keys |
更新本地密鑰 |
信任碼含義.
表 10.8. 信任碼含義列表
| 代碼 | 信任描述 |
|---|---|
- |
沒(méi)有所有者信任簽名/沒(méi)有計(jì)算 |
e |
信任計(jì)算失敗 |
q |
沒(méi)有足夠的信息用于計(jì)算 |
n |
從不信任這個(gè)鍵 |
m |
最低限度的信任 |
f |
完全信任 |
u |
最終信任 |
如下命令上傳我的 "1DD8D791" 公鑰到主流的公鑰服務(wù)器 "hkp://keys.gnupg.net"。
$ gpg --keyserver hkp://keys.gnupg.net --send-keys 1DD8D791
默認(rèn)良好的公鑰服務(wù)器在 "~/.gnupg/gpg.conf" (舊的位置在 "~/.gnupg/options")文件中設(shè)置,此文件包含了以下信息。
keyserver hkp://keys.gnupg.net
從鑰匙服務(wù)器獲取無(wú)名鑰匙。
$ gpg --list-sigs --with-colons | grep '^sig.*\[User ID not found\]' |\ cut -d ':' -f 5| sort | uniq | xargs gpg --recv-keys
有一個(gè)錯(cuò)誤在 OpenPGP 公鑰服務(wù)器 (先前的版本 0.9.6),會(huì)將鍵中斷為 2 個(gè)以上的子鍵。新的 gnupg (>1.2.1-2) 軟件包能夠處理這些中斷的子鍵。參見(jiàn) gpg(1) 下的 "--repair-pks-subkey-bug" 選項(xiàng).
這里有一些在文件上使用 GNU 隱私衛(wèi)士 命令的例子。
表 10.9. 在文件上使用的 GNU 隱私衛(wèi)士的命令列表
| 命令 | 說(shuō)明 |
|---|---|
gpg -a -s file |
ASCII 封裝的簽名文件 file.asc |
gpg --armor --sign file |
同上 |
gpg --clearsign file |
生成明文簽字信息 |
gpg --clearsign file|mail [email protected] |
發(fā)送一份明文簽字到 [email protected] |
gpg --clearsign --not-dash-escaped patchfile |
明文簽名的補(bǔ)丁文件 |
gpg --verify file |
驗(yàn)證明文文件 |
gpg -o file.sig -b file |
生成一份分離的簽字 |
gpg -o file.sig --detach-sig file |
同上 |
gpg --verify file.sig file |
使用 file.sig 驗(yàn)證文件 |
gpg -o crypt_file.gpg -r name -e file |
公鑰加密,從文件里面獲取名字,生成二進(jìn)制的 crypt_file.gpg |
gpg -o crypt_file.gpg --recipient name --encrypt file |
同上 |
gpg -o crypt_file.asc -a -r name -e file |
公鑰加密,從文件中獲取名字,生成 ASCII 封裝的 crypt_file.asc |
gpg -o crypt_file.gpg -c file |
將文件對(duì)稱加密到 crypt_file.gpg |
gpg -o crypt_file.gpg --symmetric file |
同上 |
gpg -o crypt_file.asc -a -c file |
對(duì)稱加密,從文件到 ASCII 封裝的 crypt_file.asc |
gpg -o file -d crypt_file.gpg -r name |
解密 |
gpg -o file --decrypt crypt_file.gpg |
同上 |
增加下面內(nèi)容到 "~/.muttrc",在自動(dòng)啟動(dòng)時(shí),避免一個(gè)慢的 GnuPG,在索引菜單中按 "S" 來(lái)允許它使用。
macro index S ":toggle pgp_verify_sig\n" set pgp_verify_sig=no
gnupg 插件可以讓你對(duì)擴(kuò)展名為 ".gpg", ".asc", 和 ".ppg"的文件可靠的運(yùn)行 GnuPG。[6]
$ sudo aptitude install vim-scripts $ echo "packadd! gnupg" >> ~/.vim/vimrc
md5sum(1) 提供了制作摘要文件的一個(gè)工具,它使用 rfc1321 里的方式制作摘要文件.
$ md5sum foo bar >baz.md5 $ cat baz.md5 d3b07384d113edec49eaa6238ad5ff00 foo c157a79031e1c40f85931829bc5fc552 bar $ md5sum -c baz.md5 foo: OK bar: OK
| 注意 | |
|---|---|
|
MD5 校驗(yàn)和的 CPU 計(jì)算強(qiáng)度是比 GNU Privacy Guard (GnuPG) 加密簽名要少的.在通常情況下,只有頂級(jí)的摘要文件才需要加密簽名來(lái)確保數(shù)據(jù)完整性. |
在 GNOME 系統(tǒng),GUI(圖形用戶界面)工具 seahorse(1) 管理密碼,安全的在密鑰環(huán) ~/.local/share/keyrings/* 里面保存它們。
secret-tool(1) 能夠從命令行存儲(chǔ)密碼到鑰匙環(huán)。
讓我們存儲(chǔ) LUKS/dm-crypt 加密磁盤鏡像用到的密碼
$ secret-tool store --label='LUKS passphrase for disk.img' LUKS my_disk.img Password: ********
這個(gè)存儲(chǔ)的密碼能夠被獲取并給到其它程序,比如 cryptsetup(8)。
$ secret-tool lookup LUKS my_disk.img | \ cryptsetup open disk.img disk_img --type luks --keyring - $ sudo mount /dev/mapper/disk_img /mnt
| 提示 | |
|---|---|
|
無(wú)論何時(shí),你需要在一個(gè)腳本里面提供密碼時(shí),使用 |
這里有許多源代碼合并工具。如下的是我感興趣的工具。
表 10.10. 源代碼合并工具列表
| 軟件包 | 流行度 | 大小 | 命令 | 說(shuō)明 |
|---|---|---|---|---|
patch |
V:73, I:711 | 248 | patch(1) |
給原文件打補(bǔ)丁 |
vim |
V:100, I:394 |
新聞名稱:【Debian參考手冊(cè)】第?10?章?數(shù)據(jù)管理 轉(zhuǎn)載注明:http://uogjgqi.cn/article/cdoiecj.html ![]() 掃二維碼與項(xiàng)目經(jīng)理溝通我們?cè)谖⑿派?4小時(shí)期待你的聲音 解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流 |