Linux入职基础-5.23_命令logrotate转储系统日志(应用实战7)

本文介绍如何利用Logrotate程序自动管理和转储Linux系统的日志文件,避免因日志积累过多而占用大量磁盘空间。Logrotate可根据日志文件大小或时间周期自动删除旧日志并创建新日志。

命令logrotate 转储系统日志

简介:

日志的级别分为七级,从紧急程度由高到底:

emerg 系统已经不可用,级别为紧急

alert 警报,需要立即处理和解决

crit 既将发生,得需要预防。事件就要发生

warnig 警告

err 错误信息,普通的错误信息

notice 提醒信息,很重要的信息

info 通知信息,属于一般信息

debug 这是调试类信息

系统时时刻刻都在产生日志,如果不及时清理,很快就会挤满硬盘,但如果要手工清理,又很麻烦。这种情况下,/usr/sbin/logrotate这个程序很好的完成这个任务。所以常说程序logrotate是linux系统日志的管理工具。

功能:

logrotate程序把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。

说明:

“转储”可以根据日志文件的大小,也可以根据其天数来,这个过程一般通过一个叫做 crond的守护进程来执行,一般系统默认有一个logrotate 的shell脚本被加入cron的/etc/cron.daily中作为每日任务执行。如下图:


现在,打开/etc/cron.daily/logrotate这脚本,内容如下:


从这个脚本中可知,/usr/sbin/logrotate程序会每天被crond的守护进程调用一次,执行了/etc/logrotate.conf这个配置文件。它指定每个日志文件的“转储”默认规则。

每个日志文件的特定规则存放在目录/etc/logrotate.d/*(也会被logrotate程序读取,在logrotate.conf中使用include 选项读取其他配置文件)。如下:

现在,打开/etc/logrotate.conf这个配置文件,主要内容如下:

[root@localhost~]# cat /etc/logrotate.conf

# rotate log files weekly

weekly      

# keep 4 weeks worth of backlogs

rotate 4

errors root

# create new (empty) log files afterrotating old ones

create

# uncomment this if you want your log filescompressed

#compress

# RPM packages drop log rotationinformation into this directory

include /etc/logrotate.d

# no packages own wtmp -- we'll rotate themhere

/var/log/wtmp {

    monthly

    minsize 1M

    create 0664 root utmp

    rotate 1

}

注解:

weekly指定所有的日志文件每周转储一次

rotate4 指定转储文件的保留4

errorsroot 指定错误信息发送给root

create指定logrotate 自动建立新的日志文件,新的日志文件具有和

原来的文件一样的权限。

compress指定不压缩转储文件,如果需要压缩,去掉注释就可以了。

include选项读取其他配置文件,include 指定的文件中的转储参数将覆盖缺省的参数。

语法:logrotate[OPTION...] <configfile>

参数:

-d, --debug :debug模式,测试配置文件是否有错误。

-f, --force :强制转储文件。

-m, --mail=command :发送日志到指定邮箱。

-s, --state=statefile :使用指定的状态文件。

-v, --verbose :显示转储过程。

/etc/logrotate.conf这个配置文件主要参数如下表:

daily 指定转储周期为每天

weekly 指定转储周期为每周

monthly 指定转储周期为每月

nomail 转储时不发送日志文件

nocreate 不建立新的日志文件

size size 当日志文件到达指定的大小时才转储,Size可以指定bytes (缺省)以及KB (sizek)或者MB (sizem)。

ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。

notifempty 如果是空文件的话,不转储

compress 通过gzip 压缩转储以后的日志

nocompress 不需要压缩时,用这个参数

copytruncate  用于还在打开中的日志文件,把当前日志备份并截断

nocopytruncate  备份日志文件但是不截断

create mode owner group  转储文件,使用指定的文件模式创建新的日志文件

delaycompress和 compress 一起使用时,转储的日志文件到下一次转储时才压缩

nodelaycompress  覆盖 delaycompress 选项,转储同时压缩。

errors address  专储时的错误信息发送到指定的Email 地址

mail address  把转储的日志文件发送到指定的E-mail 地址

olddir directory转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统

noolddir 转储后的日志文件和当前日志文件放在同一个目录下

postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

rotate count指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份

范例:

#1显示转储过程,强制进行

[root@localhost ~]# /usr/sbin/logrotate -vf/etc/logrotate.conf

#2为日志/var/log/lastlog配置,在配置文件/etc/logrotate.conf末尾添加如下代码:

/var/log/lastlog {

monthly

rotate 1

}

 

 

 

 



<think>我们正在解决用户的问题:将apoc-5.23.0-all.jar复制到Neo4j的plugins目录时,出现目标目录不存在的错误。 根据用户描述,问题在于复制的目标目录(即plugins目录)不存在。 解决方案的核心步骤: 1. 确认Neo4j的安装目录。 2. 在Neo4j安装目录下创建plugins目录(如果不存在)。 3. 将jar文件复制到该目录。 4. 配置并重启Neo4j。 注意:用户之前的问题中已经提到了复制步骤,但是出现了目录不存在的错误,因此我们需要重点解决如何创建目录以及如何确保路径正确。 下面详细说明:</think>### 解决 Neo4j 插件目录不存在的错误 当尝试将 `apoc-5.23.0-all.jar` 复制到 Neo4j 的 `plugins` 目录时出现目录不存在错误,请按以下步骤解决: #### 🔍 步骤 1:验证 Neo4j 安装路径 首先确认您的 Neo4j 实际安装位置: ```bash # Linux/macOS whereis neo4j # Windows where neo4j ``` 如果未找到路径,说明 Neo4j 可能未安装或环境变量未配置[^1]。 #### 📂 步骤 2:手动创建 plugins 目录 进 Neo4j 根目录后创建所需目录: ```bash cd /path/to/neo4j-community-5.23.0 # 替换为实际路径 # 创建缺失的 plugins 目录 mkdir -p plugins # Linux/macOS mkdir plugins # Windows ``` #### 📦 步骤 3:复制文件并验证权限 ```bash # 复制 APOC 文件 cp apoc-5.23.0-all.jar plugins/ # Linux/macOS copy apoc-5.23.0-all.jar plugins\ # Windows # 检查文件权限 (Linux/macOS) ls -l plugins/apoc-5.23.0-all.jar ``` 若权限不足(如显示 `-rw-r--r--`),需添加执行权限: ```bash chmod +x plugins/apoc-5.23.0-all.jar ``` #### ⚙ 步骤 4:配置 Neo4j 并重启 1. 编辑配置文件: ```bash vim conf/neo4j.conf # Linux/macOS notepad conf\neo4j.conf # Windows ``` 2. 添加配置项: ```properties dbms.directories.plugins=plugins # 显式指定插件路径 dbms.security.procedures.unrestricted=apoc.* ``` 3. 重启服务: ```bash neo4j restart ``` #### 🧪 验证安装 在 Neo4j 浏览器中执行: ```cypher RETURN apoc.version() AS version; ``` 成功时应返回:`5.23.0` > 💡 **常见问题解决**: > - **路径包含空格**:Windows 路径如 `C:\Program Files\...` 需加引号: > `copy "apoc.jar" "C:\Program Files\Neo4j\plugins\"` > - **权限问题**:Linux/macOS 使用 `sudo` 执行命令 > - **目录结构错误**:确保路径为 `neo4j-root/plugins/`,不是 `neo4j-root/bin/plugins/` #### 📚 相关问题 1. 如何修复 Neo4j 启动时 "plugins directory not found" 的错误? 2. 在 Docker 容器中如何指定自定义插件路径? 3. Neo4j 插件加载失败时如何查看详细日志?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值