如果你的服务器中部署了很多项目,而项目日志不论是开发还是生产都必不可少的一项内容,随着日积月累,日志文件会越来越大。这时候就需要我们对日志文件进行一些操作,而我这里是对项目日志进行了转移,因为我们挂载了文件磁盘
废话不多说,直接上操作
-
首先需要在服务器中新建一个脚本文件,可以在
/usr/bin
也可以在/usr/local/bin
等目录下新建。
vim /usr/local/bin/move_log_file
-
编写脚本代码
#!/bin/bash
# 帮助信息 可根据你的实际项目情况编辑
help_msg="这个脚本用来转移项目日志到挂载磁盘下
用法:
move_log_file [选项]
选项:
-h, --help 显示帮助信息
-p, --path 项目日志的绝对路径,如laravel要到storage/logs
-t, --to_dir_name 要转移到/data下的目录名
"
# 如果没传参数,输出帮助信息
if [ $# -eq 0 ]; then
echo "$help_msg"
exit 1
fi
# 接收参数
while getopts "hp:t:-:" opt; do
case $opt in
h)
help=true
;;
p)
path=$OPTARG
;;
t)
to_dir_name=$OPTRAG
;;
-)
case $OPTARG in
path=*)
path=${OPTARG#*=}
;;
to_dir_name=*)
to_dir_name=${OPTARG#*=}
;;
help)
help=true
;;
*)
echo "无效的选项:--$OPTARG" >&2
exit 1
;;
esac
;;
*)
help=true
;;
esac
;;
done
# 如果是-h 或者 --help 输出帮助信息
if [ "$help" = true ]; then
echo "$help_msg"
exit 1
fi
# 获取当前年份和月份
year=$(date +%Y)
month=$(date +%m)
# 组装日志转移路径
dest_path=/data/$to_dir_name/$year-$month
# 如果目录不存在,创建此目录 -p 包括父级目录
if [ ! -d "$dest_path" ]; then
mkdir -p $dest_path
fi
# 转移文件
mv $path/laravel-*.log $dest_path/
echo "转移成功"
- 保存后,切记要给脚本文件添加可执行权限
chmod +x /usr/local/bin/move_log_file
- 调用方式:
move_log_file -p /xxx/xxx/xxx/storage/logs -t 以项目名称命名的目录名
move_log_file --path=/xxx/xxx/xxx/storage/logs -to_dir_name=以项目名称命名的目录名
move_log_file -h
move_log_file --help