今天给大家分享的是使用脚本快速消耗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=$1
- local dir=$2
- for ((i = 1; i <= num; i++)); do
- {
- touch "$dir/file$i"
- } &
- done
- wait
- }
-
- # 获取inode数量以后,然后根据剩余的inode数量,创建文件
- main() {
- num=$(get_inode_free "/")
- create_files "$num" "/tmp"
- }
-
- main
- #!/bin/bash
-
- # main 函数:用于在指定分区上创建文件,直到分区上的inode耗尽
- # 参数:
- # $1:分区路径
- # $2:目录路径
- main() {
- i=0
- while true
- do
- ((i++))
- local partition=$1
- local dir=$2
- 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}')
- if [[ $inode_free > 0 ]]; then
- touch $2/test_file_$i
- else
- echo "No more inodes available on $partition." >&2
- fi
- done
- }
-
- main "/" "/tmp"