Fastdfs檔案系統刪除重複的檔案
阿新 • • 發佈:2020-08-05
環境:centos、fastdfs
Fastdfs檔案系統刪除重複的檔案
問題:fastdfs檔案系統磁碟空間瘋狂擴充套件。
原因:fastdfs產生了很多的檔案備份,要找到重複檔案,排除在使用的檔案刪除其他的檔案。
根源可能是程式反覆上傳原因,開發進行跟中
刪除不需要檔案思路:
1、檢視檔案重複情況
2、列出所有檔案系統檔案,和從資料庫找到所有在用的檔名稱
3、處理fastdfs匯出的所有的檔案路徑名稱 和 資料庫匯出名稱格式一樣
4、比對fastdfs和資料庫的名稱,找出沒有在資料庫中的檔名稱
5、根據比對結果找到fastdfs的檔案路徑,進行刪除
1、找到所有檔案,並通過md5檢視重複情況
find /data/fdfs_storage/data -type f -name “*.jpg” > /tmp/all.txt #找出所有檔案 for i in `at /tmp/all.txt`;do md5sum $i >> /tmp/all_md5.txt;done #查出檔案的md5值 uniq -c /tmp/all_md5.txt|sort -n -r #去重檢視重複檔案數
2、fastdfs 檔名稱/tmp/all.txt ,資料庫檔名稱 /tmp/sjk.txt
cat /tmp/all.txt|awk -F / ‘{print $7}’ >> /tmp/all_fastdfs.txt #處理fastdfs檔案和資料庫檔案一樣 sort /tmp/all_fastdfs.txt >> /tmp/all_fastdfs_new.txt #對fastdfs檔案進行排序 sort /tmp/sjk.txt >> /tmp/sjk_new.txt #對資料庫檔案進行排序 comm /tmp/all_fastdfs_new.txt /tmp/sjk_new.txt -2-3 >> /tmp/fastdfs-sjk.txt #fastdfs檔案排除資料庫的檔案,這些檔案是要刪除的檔案
3、找出這些檔案並刪除
for i in `/tmp/fastdfs-sjk.txt`;do grep $i /tmp/all.txt > /tmp/delete-fasts.txt;done #找出檔案路徑 for i in ` /tmp/delete-fasts.txt`;do rm -rvf $i;done #刪除檔案
4、常用命令
uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ -Fields ] [ +Characters ] [ InFile [ OutFile ] ] -c 在輸出行前面加上每行在輸入檔案中出現的次數。 -d 僅顯示重複行。 -f 忽略由 Fields 變數指定的欄位數目。如果 Fields 變數的值超過輸入行中的欄位數目, uniq 命令用空字串進行比較。這個標誌和 -Fields 標誌是等價的。 -u 僅顯示不重複的行。 例子:查詢一個檔案重複最多的前10條記錄: uniq -c file | sort -n -r |head -10 comm命令語法:comm [-123] [--help][--version][file1][file2] comm命令引數: -1 不顯示只在第1個檔案裡出現過的列。 -2 不顯示只在第2個檔案裡出現過的列。 -3 不顯示只在第1和第2個檔案裡出現過的列。 FastDFS常見命令 1: 啟動FastDFS tracker: /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf storage: /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf 2:關閉FastDFS tracker:/usr/local/bin/stop.sh /usr/local/bin/fdfs_tracker storage:/usr/local/bin/stop.sh /usr/local/bin/fdfs_storage 或者 killall fdfs_trackered(storaged) -------注意,千萬不要使用-9強行殺死程序。 3:重啟FastDFS tracker:/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackered storage:/usr/local/bin/restart.sh /usr/local/bin/fdfs_storaged 4:檢視叢集情況 在任意一臺storage(tracker也可以) /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf 5:刪除一個storage: 在任意一臺storage(tracker也可以) /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf delete group2 20.12.1.73 6:上傳檔案 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/02.jpg 7:刪除上傳的檔案 /usr/local/bin/fdfs_delete_file 配置檔案 需要刪除的檔案路徑 /usr/local/bin/fdfs_delete_file /etc/fdfs/client.conf group3/M00/00/00/wKgAUE5yiVK0VEpSACiWWseqpak.tar.gz