2021-05-12 14:32:11
Linux中檔案MD5校驗
2020-06-16 17:09:06
md5sum命令用於生成檔案的md5數位摘要,並可以驗證檔案內容是否發生了改變,間接地還可以檢驗兩個檔案內容是否完全相同。因為md5sum是讀取檔案內容來計算校驗碼的,因此只能驗證檔案內容,而無法驗證檔案屬性。
[root@linuxidc ~]# cp -a /etc/fstab /tmp/fstab [root@linuxidc ~]# cp -a /etc/fstab /tmp/fstab1
生成檔案的md5值。
[root@linuxidc ~]# md5sum /tmp/fstab /tmp/fstab1 a612cd5d162e4620b442b0ff3474bf98 /tmp/fstab a612cd5d162e4620b442b0ff3474bf98 /tmp/fstab1
發現這兩個檔案md5值完全一樣,也就說明這兩個檔案完全相同。
由於生成的md5資訊中,每個md5值後都緊跟著對應的檔案的路徑(可能是相對路徑),於是將生成的md5儲存到某個檔案中,以後可以使用該檔案來檢查md5值對應檔案內容是否發生了修改。
例如,將上述兩個檔案的md5資訊儲存到fs.md5sum中,然後使用"md5sum -c"可以檢查原始檔是否完整或是否被修改過。這個檢查是內容上的,許可權和屬性等的改變不會影響md5值,所以不會檢測出問題。
[root@linuxidc ~]# md5sum /tmp/fstab /tmp/fstab1 >/tmp/fs.md5sum [root@linuxidc ~]# md5sum -c /tmp/fs.md5sum /tmp/fstab: OK /tmp/fstab1: OK
修改/tmp/fstab1的內容,然後再檢測。
[root@linuxidc tmp]# echo aaa >>/tmp/fstab1 [root@linuxidc tmp]# md5sum -c /tmp/fs.md5sum /tmp/fstab: OK /tmp/fstab1: FAILED md5sum: WARNING: 1 of 2 computed checksums did NOT match
當使用了"-c"選項時,還支援以下選項:
--quiet:不顯示驗證結果為OK的記錄
--status:完全不顯示任何資訊,只能通過命令的退出狀態碼判斷驗證結果是否有failed。只要有一條failed記錄,則狀態碼為1,否則為0。
[root@linuxidc tmp]# md5sum --status -c /tmp/fs.md5sum
[root@linuxidc tmp]# echo $? 1
通過比較md5sum的值,可以判斷出多個檔案的內容是否完全一致,但肉眼判斷並不方便,所以寫出指令碼批次判斷。指令碼見:shell指令碼範例:批次比較多個檔案的內容是否相同。
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-08/146535.htm
相關文章