使用deb-src包重新编译bash使之能够输出日志到rsyslog的local1

本文介绍了如何在Ubuntu系统中,通过下载bash源码包,添加补丁并重新编译,使得bash命令输出能记录到rsyslog的local1通道。步骤包括安装build工具,下载源码,添加依赖,应用补丁,重建包,配置rsyslog,并测试日志记录功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考地址
http://www.ducea.com/2008/03/06/howto-recompile-debian-packages/
http://cs-people.bu.edu/doucette/xia/guides/debian-patch.txt
http://packaging.ubuntu.com/html/patches-to-packages.html
http://blog.youkuaiyun.com/fmddlmyy/article/details/2140097


查看ubuntu版本
cat /etc/issue
查看bash版本
bash --version

1. 安装基本的build工具
apt-get install devscripts build-essential


2. 下载源码包
apt-get update
apt-get install dpkg-dev
mkdir bash
cd bash
apt-get source bash

3. 安装依赖
apt-get build-dep bash

4. 添加补丁
apt-get install quilt
export QUILT_PATCHES=debian/patches
cd bash-4.3
quilt import /root/Bash/irsensor-ubuntu-patch.diff
quilt unapplied
quilt top
sed -i s#a/bash/#a/# debian/patches/irsensor-ubuntu-patch.diff
sed -i s#b/bash/#b/# debian/patches/irsensor-ubuntu-patch.diff
quilt push -a
quilt unapplied
quilt top


5. rebuild包
cd bash-4.3
debuild -us -uc
cd ..
dpkg -i bash_4.3-7ubuntu1.5_amd64.deb


6. 配置rsyslog
vim /etc/rsyslog.conf
去掉这3行的注释
$ModLoad immark
$ModLoad imudp
$UDPServerRun 514
local1.*                                /var/log/bashcmd.log

vim /etc/default/rsyslog
修改
RSYSLOGD_OPTIONS="-c5 -r -x"

重启rsyslog
service rsyslog restart


7. 测试
另外打开一个控制台窗口随便输入几个命令并查看日志文件。
tail -f /var/log/bashcmd.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值