今天给大家分享的是使用脚本快速消耗inode,用于测试inode用完以后创建文件出现的情况。本文一共提供了两个脚本供大家参考,使用的时候任选其一,也欢迎大家在评论区里面提供一些修改的建议。
#!/bin/bash# 获取指定分区的inode剩余数量
get_inode_free() { local partition=$1 local inode_line=$(df -i | grep -w "$partition") if [[ -z "$inode_line" ]]; then echo "Partition $partition not found." >&2 return 1 fi local inode_free=$(echo "$inode_line" | awk '{print $4}') echo "$inode_free"
}# 快速创建指定数量的空文件
create_files() {local num=$1local dir=$2for ((i = 1; i <= num; i++)); do{touch "$dir/file$i"} &donewait
}# 获取inode数量以后,然后根据剩余的inode数量,创建文件
main() {num=$(get_inode_free "/")create_files "$num" "/tmp"
}main
#!/bin/bash# main 函数:用于在指定分区上创建文件,直到分区上的inode耗尽
# 参数:
# $1:分区路径
# $2:目录路径
main() {i=0while true do ((i++))local partition=$1 local dir=$2local inode_line=$(df -i | grep -w "$partition") if [[ -z "$inode_line" ]]; then echo "Partition $partition not found." >&2 return 1 fi local inode_free=$(echo "$inode_line" | awk '{print $4}') if [[ $inode_free > 0 ]]; then touch $2/test_file_$ielseecho "No more inodes available on $partition." >&2fidone
}main "/" "/tmp"