分类: LINUX
2007-12-06 21:26:37
交叉编译日志记录包的安装
1. 修改makefile
CC=gcc修改为
CC=/usr/local/arm/2.95.3/linux/bin/arm-linux-gcc
2. 修改 syslogd.c中的几个定义
(因为我们板子上的根文件系统为只读fs,所以/etc下面不可写。而程序中均默认为/etc目录,我们将其/etc替代为/mnt/yaffs/syslog,如果文件系统可写,就不用修改了)
其中主要用到是配置文件的目录_PATH_LOGCONF,将其指定为了/mnt/yaffs/syslog/syslog.conf
#define UTMP_FILE "/mnt/yaffs/syslog/utmp"
#define _PATH_LOGCONF "/mnt/yaffs/syslog/syslog.conf"
#define _PATH_LOGPID "/mnt/yaffs/syslog/syslogd.pid"
3. 修改syslogd.c的init函数
将下列的几行程序注释掉,并且对LogPort赋个任意值。
// sp = getservbyname("syslog", "udp");
// if (sp == NULL) {
// errno = 0;
// logerror("network logging disabled (syslog/udp service unknown).");
// logerror("see syslogd(8) for details of whether and how to enable it.");
// return;
// }
LogPort =669 ;
这个地方开始我们并没有注意到,在先前实验中,我们运行syslog时,报错:
network logging disabled (syslog/udp service unknown).
see syslogd(8) for details of whether and how to enable it.
然后发现到,找到了程序,注释掉,即禁止了其日志文件可以通过网络发送到其他
终端的功能。
第一,因为这个服务我们的内核不支持,会导致记录日志的子程序syslog不能正常
工作(如程序,直接return了),则只能将内核记录信息输出到终端,而不能实现
记录到文件。
第二,我们认为一般的是PC机做服务器时记录了日志文件并通过网络备份到其他主机上
需要这个服务,但对于PDA这样并不是十分安全,也不需要。
4. make
(这里没有运行make install,这样会覆盖掉PC机下原有的文件)
Make后在安装包所在目录下,新得到syslog和klogd两个可执行文件
5. 设置配置文件syslog.conf (存放于/mnt/yaffs/syslog/syslog.conf)
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
kern.* /mnt/yaffs/syslog/kern
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /mnt/yaffs/syslog/messages
# The authpriv file has restricted access.
authpriv.* /mnt/yaffs/syslog/secure
# Log all the mail messages in one place.
mail.* /mnt/yaffs/syslog/maillog
# Log cron stuff
cron.* /mnt/yaffs/syslog/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /mnt/yaffs/syslog/spooler
# Save boot messages also to boot.log
local7.* /mnt/yaffs/syslog/boot.log
将产生的不同日志信息,按照类别存放在不同的文件下。以便观察检查。
6.试验
6.1 试验telnet, PC机telnet实验板
日志记录情况:
Jan 11 02:11:31 (none) auth.info login[165]: root login on `pts/0' from `192.168.0.184'
6.2 试验ftp,PC机ftp连接实验板
日志记录情况:
Jan 11 02:12:46 (none) local2.info in.ftpd[171]: connection from 192.168.0.184
Jan 11 02:12:54 (none) local2.info in.ftpd[171]: root logged in
Jan 11 02:13:47 (none) local2.err in.ftpd[171]: Can't open file: Permission denied
(PC机下/root目录下的文件不能被上传,出错信息)
Jan 11 02:14:41 (none) local2.info in.ftpd[171]: //var/log/rpm.txt uploaded