一个nginx自动保存内存缓存文件夹信息, 方便重启后批量重新创建文件夹的脚本

为了提高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"

“一个nginx自动保存内存缓存文件夹信息, 方便重启后批量重新创建文件夹的脚本”的一个回复

发表评论

您的电子邮箱地址不会被公开。