Fastdfs文件系統刪除重復的文件


環境: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 `cat /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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM