为了提高nginx的缓存效率, 通常会把nginx的缓存文件目录放在/dev/shm下, 然而当服务器重启过后...
由于/dev/shm
本身就是一个临时文件系统,它会将数据存储在内存中。这种机制允许程序和进程快速地访问和写入文件,因为这些文件实际上是存放在RAM中的,而不是磁盘上。这也就意味着存储在/dev/shm
下的文件在系统重启后不会保留, 进而导致nginx在服务器重启过后无法自动启动(因为缓存文件夹不存在)
所以写了个小脚本,虽然还是手动的,但是避免了自己手动一个一个重新mkdir。
先在nginx正常运行的情况下使用ls -d /dev/shm/*/ > nginx_mkdir_list.txt
将/dev/shm
的目录信息都保存下来
然后在重启服务器过后就能使用下面的脚本批量mkdir了
#!/bin/bash
# ls -d /dev/shm/*/ > nginx_mkdir_list.txt
FILENAME="nginx_mkdir_list.txt"
if [[ ! -f "$FILENAME" ]]; then
echo "File $FILENAME does not exist."
exit 1
fi
while IFS= read -r directory; do
# 注意自己的mkdir文件夹路径, 我这里单独加了个cache的子目录, 因为我的nginx cache目录配置的是/dev/shm/xxxxx/cache
directory=${directory}cache
if [[ ! -d "$directory" ]]; then
mkdir -p "$directory"
echo "Directory created: $directory"
else
echo "Directory already exists: $directory"
fi
done < "$FILENAME"
哇噻~