为了提高nginx的缓存效率, 通常会把nginx的缓存文件目录放在/dev/shm下, 然而当服务器重启过后...
由于/dev/shm
本身就是一个临时文件系统,它会将数据存储在内存中。这种机制允许程序和进程快速地访问和写入文件,因为这些文件实际上是存放在RAM中的,而不是磁盘上。这也就意味着存储在/dev/shm
下的文件在系统重启后不会保留, 进而导致nginx在服务器重启过后无法自动启动(因为缓存文件夹不存在)
所以写了个小脚本,虽然还是手动的,但是避免了自己手动一个一个重新mkdir。
先在nginx正常运行的情况下使用ls -d /dev/shm/*/ > nginx_mkdir_list.txt
将/dev/shm
的目录信息都保存下来
然后在重启服务器过后就能使用下面的脚本批量mkdir了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/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" |
哇噻~