shell 日志分割脚本
时间: 2023-06-28 12:04:43 浏览: 63
以下是一个基于时间的日志分割脚本示例:
```bash
#!/bin/bash
# 定义日志文件路径和名称
LOG_FILE=/var/log/myapp.log
# 定义日志分割的时间格式
DATE_FORMAT=$(date +%Y%m%d)
# 定义日志备份目录
BACKUP_DIR=/var/log/backups
# 如果备份目录不存在,则创建它
if [ ! -d "$BACKUP_DIR" ]; then
mkdir -p $BACKUP_DIR
fi
# 如果日志文件存在,则备份并清空它
if [ -f "$LOG_FILE" ]; then
mv $LOG_FILE $BACKUP_DIR/myapp-$DATE_FORMAT.log
touch $LOG_FILE
fi
```
该脚本会将 `$LOG_FILE` 中的日志备份到 `$BACKUP_DIR` 中,并将当前日志文件清空,以便开始记录新的日志。您可以将此脚本添加到定时任务中,例如每天午夜分割日志。
相关问题
shell脚本分割字符串
在shell脚本中,可以使用内置的字符串分割函数来分割字符串。其中,最常用的是cut命令和awk命令。
cut命令可以通过指定分隔符和字段编号来分割字符串,例如:
```
str="hello,world"
echo $str | cut -d ',' -f 1 # 输出hello
echo $str | cut -d ',' -f 2 # 输出world
```
awk命令则可以通过指定分隔符和字段名称来分割字符串,例如:
```
str="hello,world"
echo $str | awk -F ',' '{print $1}' # 输出hello
echo $str | awk -F ',' '{print $2}' # 输出world
```
除了cut和awk命令外,还可以使用sed命令、grep命令等来分割字符串。具体使用方法可以参考相关文档或教程。
nginx 日志分割的脚本
A:
下面是一个简单的 shell 脚本,用于定期将 nginx 访问日志按天分割,并将原始日志文件清空:
```
#!/bin/bash
log_dir=/var/log/nginx
date=$(date -d yesterday +"%Y-%m-%d")
access_log=$log_dir/access.log
split_log=$log_dir/access-$date.log
# 分割日志
mv $access_log $split_log
kill -USR1 $(cat /run/nginx.pid)
# 清空原始日志文件
cat /dev/null > $access_log
```
将此脚本保存为 `nginx-log-split.sh`,并将其添加到 crontab 中,以每天凌晨零点执行一次:
```
0 0 * * * /bin/bash /path/to/nginx-log-split.sh
```
脚本执行的过程如下:
1. 获取昨天的日期,并将格式化后的日期作为新日志文件名。
2. 将原始的 nginx 访问日志文件重命名为新日志文件名。
3. 向 nginx 进程发送 USR1 信号,用以通知 nginx 重新打开日志文件,从而产生新的访问日志文件。
4. 清空原始的 nginx 访问日志文件内容。
注意:本脚本仅适用于按天分割 nginx 访问日志,如需按小时或其他方式分割日志,需要根据实际情况进行修改。
相关推荐
![sh](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)