aarch64 下 logrotate 交叉编译及配置使用

在此不对logrotate 用来做什么进行说明, 网上资料很多

参考文章 

https://www.cnblogs.com/miaocbin/p/11540312.html

https://blog.csdn.net/wennuanddianbo/article/details/74502700

接下来就是我自己所做的,并成功使用到我司产品上的

通过参考资料及网上的其它资料(在此不一一例举)可知, logrotate 要能自动正确的工作,需要依赖几个工具

以我的开发平台为例, 使用了 petalinux(yocto) 来制作根文件系统,

a. 通过 petalinux-config -c rootfs 来配置 popt, 使用 buildroot 制作根文件系统的, 方法基本一样

b. 通过 petalinux-config -c busybox 来配置 cond crontab 两个命令,buildroot 下使用 make busybox-menuconfig 进行配置

1. POP  ---libpopt.so.0.0.0 库, 软链接为  libpopt.so.0


2. crond  crontab 服务进程

3. crontab 配置 周期性高度 logrotate 执行的命令

接下来需交叉编译logrotate, 该工具依赖于 popt 的头文件, 编译时需要指定相关的头文件,本人是这样使用的

切换到 logrotate 源码目录下(https://github.com/logrotate/logrotate)
INC_PATH=<myrootfs>/usr/include
POPT_LIB_PATH=<mypetalinux>/build/tmp/sysroots-components/aarch64/popt

./autogen.sh
./configure --build=x86_64-linux --host=aarch64-xilinx-linux LDFLAGS=-L${POPT_LIB_PATH}/usr/lib CPPFLAGS=-I${INC_PATH} --prefix=${PWD}/install

make 

make install 

编译完成把生成的 logrotate 可执行文件放到rootfs/usr/sbin/logrotate 中与打包根文件系统一起打包

此外, 要自动执行相应命令, 在制作根文件系统前还需要进行一些配置及命令执行

logrotate 配置文件 /etc/logrotate.conf

/var/log/app.log {
    daily
    compress
    delaycompress 
    missingok
    notifempty 
    size=10M
    rotate 10
    copytruncate
    dateext
    dateformat -%Y-%m-%d-%H%M
}

针对 logrotate 周期性调度的 cron 配置文件 /etc/logrotate.cron

*/5 * * * * /usr/sbin/logrotate -l /var/log/logrotae.log /etc/logrotate.conf

在第一个用户态应用程序启动前增加如下命令行

CRON_SPOOL=/var/spool/cron/crontabs
CRONTAB_FILE=/etc/logrotate.cron

mkdir -p ${CRON_SPOOL}
crond -b -c ${CRON_SPOOL}
crontab ${CRONTAB_FILE}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值