標籤:too many links
今天收到反饋,某些檔案同步失敗,查看日誌發現:
rsync: recv_generator: mkdir "/app/data/ckl/ckli2780581" failed: Too many links (31)*** Skipping any contents from this failed directory ***
-
進入相關目錄建立檔案:
cd /app/data/ckl/mkdir vd
報錯一樣:
failed: Too many links
2.查看目錄
ls /app/data/ckl | wc -l31998
目錄個數竟然這麼多,有可能是檔案系統的限制
3.查看檔案系統
df -lhTFilesystem Type Size Used Avail Use% Mounted on/dev/sda1 ext3 7.9G 4.9G 2.7G 65% /
果然是ext3
大概如下:
nclude/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000include/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000
為什麼說31998個呢?這是因為mkdir建立一個目錄時,目錄下預設就會建立兩個子目錄的,一個是.目錄(代表目前的目錄),另一個是..目錄(代表上級目錄)。這兩個子目錄是刪除不掉的,“ rm . ” 會得到“rm: cannot remove `.‘ or `..‘”的提示。所以32000-2=31998。
解決:
ext4 對目錄個數沒有限制
掛載一塊新盤,將目錄建立串連
指令碼如下:
#!/bin/bashCUR_DAY=`date +%Y%m%d`SRC_DIR=/appDST_DIR=/datafdisk /dev/vdc <<EOFd n p 1 1 t 83 w EOF echoecho "star create vg and lv..."pvcreate /dev/sdc1if [ $? -eq 0 ];thenvgcreate data-volume /dev/vdc1if [ $? -eq 0 ];thenlvcreate -L 99G -n s1_data data-volumeelseecho "lv create failed!"exit 1elseecho "vg create failed !"fimkfs -t ext4 /dev/data-volume/s1_datamount /dev/data-volume/s1_data ${DST_DIR}cp -a ${SRC_DIR}/data ${DST_DIR}mv ${SRC_DIR}/data ${SRC_DIR}/data_bak/ln -s ${DST_DIR}/data/ ${SRC_DIR}/data
本文出自 “營運菜鳥” 部落格,請務必保留此出處http://ckl893.blog.51cto.com/8827818/1767570
failed: Too many links 解決