var/log中的日志是写在闪存里还是内存里

日志 ; 计划任务 ; 网络配置
时间: 11:55:46
&&&& 阅读:178
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&日志分两个,一个是rsyslog 日志服务,一个是日志轮转(就是日志的分离和切割)logrotate
对了日志服务rsyslog 来说,它自带了一个服务叫做logrotate;这两个一般都是一起用;
一个日志文件如果扩大,一定会被分离的;否则文件会打不开;对于系统来讲,记录日志是通过主服务来讲的,就是这个服务:[root@server ~]# /etc/init.d/rsyslog默认这个服务是启动的;如果这个服务关了,系统是不会为我们记录日志的;很多服务和应用都是靠rsyslog这个服务来记录的
rsyslog对应的配置文件是[root@server ~]# vim /etc/rsyslog.conf#这是日志服务的主配置文件
34 #### RULES #### #这是日志规则(第34行是日志规则)
一、处理日志的进程
rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证,计划任务...
&&&&&&&&&&rsyslogd不负责处理日志,只记录日志
处理日志:1.少量日志可以使用vim cat tail less more grep awk这些文档处理程序查看和检索
&&&&&&&&&&2.大量日志可以用splunk,logserch #splunk给日志做分期
日志分类:系统日志,进程日志,应用程序(某些应用程序例如httpd,nginx,mysql,可以以自己的方式记录日志)
记录日志原因: 拍错,追溯事件,统计流量
日志可以存放在本地
日志可以存放在远程服务器
二、常见的日志文件
# ls /var/log/ &&&&#默认存放各种日志的地方
# tail /var/log/messages &#系统主日志文件
# tail -f /var/log/messages &&&#动态查看日志文件的尾部
# tail -f /var/log/secure #认证、安全
# tail /var/log/maillog #跟邮件(sendmail,postfix)相关
# tail /var/log/cron &&#crond、at进程产生的日志
# tail /var/log/dmesg &#和系统启动相关-开机后不再记录,可以使用dmesg命令查看活动的日志
# grep -i eth /var/log/dmesg &&&#只反映出开机过程的信息,开机成功后不会再改变
# dmesg &&&&&&&&&&&#查看系统开机后的信息
# tail /var/log/audit/audit.log &&&&&& #系统审计日志
# tail /var/log/yum.log
# tail /var/log/mysqld.log &&&&&&&&&&#mysql进程自己记录的日志
# tail /var/log/httpd/access_log &&&&#httpd进程自己记录的日志
# tail /var/log/xferlog &&&#和访问FTP服务器相关
# w #当前登录的用户 /var/log/wtmp
# last #最近登录的用户 /var/log/btmp
# lastlog #所有用户的登录情况 /var/log/lastlog
三、rsyslogd系统
rsyslogd是如何工作的:应用程序或者进程-------&设备-------&级别---------&动作(规则)
# rpm -qc rsyslog
/etc/logrotate.d/syslog &&&#和日志的轮转(切割)有关
/etc/rsyslog.conf &&&&&&&&#rsyslogd的主配置文件
/etc/rsyslog.d/*.conf
/etc/sysconfig/rsyslog &&&&&&&
&&# vim /etc/rsyslog.conf 这是主配置文件里面的默认规则
========================================================
==规则:Rules
告诉rsyslogd进程哪个设备(facility),关于哪个级别的信息,以及如何处理,不同的应用程序会选择不同的设备进行日志记录
authpriv.* &&&&&&&/var/log/secure #和安全认证相关的
mail.* &&&&&&&&&-/var/log/maillog 延迟一段时间再记录 前面横杠代表异物存储,先写在内存里,等不忙的时候在记录在文件里;不带横杠是产生日志马上写到磁盘文件
cron.* &&&&&&&&/var/log/cron
mail.info &/var/log/maillog &级别是info
authpriv.* &* (所有终端,包括debug) &代表日志文件不记录在任何一个文件;在所有终端打印;一般用的不多
authpriv.*@192.168.10.230 &@意思是:udp协议传输远程日志服务器 #是把日志放到远程;做日志收集用的,有时候一般不会把日志存在本地里面,一般会把日志放在专门的日志服务器上面记录,这样主要是为了安全以及统一管理,统一分析日志用的;例如apache做网页,可以通过收集网页日志;udp可能会产生,日志服务器因为网络原因收不到日志,从而无法记录日志
authpriv.*&@@192.168.10.230 &&@@意思是:TCP协议传输 #是把日志放到远程;做日志收集用的,有时候一般不会把日志存在本地里面,一般会把日志放在专门的日志服务器上面记录,这样主要是为了安全以及统一管理,统一分析日志用的;例如apache做网页,可以通过收集网页日志;如果网络不好,会导致收集日志的时间是不挨着呢;至于记录到哪?得看rsyslog
authpriv.* &:omrelp:192.168.10.230 &&:omrelp:意思是:To forward via &RELP, prepend the string ":omrelp:" in front of the hostname.
下面详细介绍了每一种日志设备
# man 3 syslog &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&LOG_AUTH &&&&&&&&&&&&&&&&&&&&&&&&&&&安全登录相关的
&&&&&&&LOG_AUTHPRIV & &&&&&&&&&&&&&&&&&&&&安全认证
&&&&&&&LOG_CRON &&&&& &&&&&&&&&&&&&&&&clock daemon (cron and at) 计划任务
&&&&&&&LOG_DAEMON &&& &&&&&&&&&&&&&&&&&&&&后台进程
&&&&&&&LOG_FTP &&&&& &&&&&&&&&&&&&&&&ftp daemon 关于ftp的
&&&&&&&LOG_KERN &&&&& &&&&&&&&&&&&&&&&kernel messages &关于内核的
&&&&&&LOG_LOCAL0 through LOG_LOCAL7用户自定义设备 支持从0到7;有8个自定义设备
&&&&&&&LOG_LPR &&&&&& &&&&&&&&&&&&&&&&printer subsystem
&&&&&&&LOG_MAIL &&&&& &&&&&&&&&&&&&&&&邮件系统mail subsystem
&&&&&&&LOG_SYSLOG &&&&syslogd自身产生的日志 日志服务自己记录的一个设备 &&&&&&&&&&&&
&&&&&&&LOG_USER (default)
&&&&&&&LOG_UUCP
接下来讲日志怎么收集?
一、集中式日志管理
==日志服务器(开启接收功能)
[root@localhost ~]# vim /etc/rsyslog.conf #下面两行关键字代表开启接收
12# Provides UDP syslog reception
13$ModLoad imudp.so
14$UDPServerRun 514 #开放时候注意,开放udp或者tcp取决于产生日志的服务器到底是一个@还是两个@@
&16 # Provides TCP syslog reception
&17 #$ModLoad imtcp
&18 #$InputTCPServerRun 514
例子:先在收集日志开启收集日志功能
[root@server ~]# vim /etc/rsyslog.conf &#是收集日志端
&16 # Provides TCP syslog reception 这里开启TCP
&17 $ModLoad imtcp
&18 $InputTCPServerRun 514 &端口号是514
在开一个自定义设备:
&62 local5.info &&&/var/log/local5.log #自定义5的info级别 保存在 /var/log/local5.log级别里面
[root@server ~]# service rsyslog restart
接下来该把日志给推到远程服务器了;先要在推的里面写规则
[root@agent ~]# vim /etc/rsyslog.conf
50 local5.info &&&&&&&@@192.168.145.128 #这里写info,默认是*,指的是所有级别都可以记录;因为使用的服务不会明确指定出会产生多少级别的日志,什么情况属于什么级别;所以我们会把所有级别产生的日志记录在一个级别里面
[root@agent ~]# service rsyslog restart
[root@agent ~]# logger -p local5.info -t "试试" "内容" &&&#手工推一个logger
[root@server ~]# cat /var/log/local5.log
Mar &3 11:53:29 agent 试试: 内容
[root@agent ~]# logger -p local5.err -t "试试" "内容" &#试试别的级别
[root@server ~]# cat /var/log/local5.log
Mar &3 11:53:29 agent 试试: 内容
Mar &3 11:54:11 agent 试试: 内容
[root@server ~]# netstat -tunlp |grep :514
远程服务有几个问题需要注意:
服务器端开启远程日志接收,并定义设备、级别以及处理方式 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&
客户端开启远上传日志功能,定义设备、级别,处理方式为网络上传 @udp @@tcp &&&&&&&&&&&&&
PS:1.客户端上定义的设备,必须保证服务器端有同样的设备进行接收(包括级别和动作都要一样)
&&&&2.防火墙 selinux 要关掉或者防火墙中允许相应端口传输数据 &&&&&&&&&&&&&&&&&&&&&&&
关掉防火墙
当日志存储到一定数量,就无法加载
一、logrotate (轮转,日志切割) #日志轮转就是为了避免大日志文件的产生;使用这个工具可以把预先设定的规则实施到某个日志上,如果那个日志符合那个规则,一般我们就会做分离;切割又叫转存
1. 如果没有日志轮转,日文件会越来越大 #当一个日志文件越来越大的时候会重新分离一个日志文件;日志文件会按照我们事先设定的大小来存放;
2. 将丢弃系统中最旧的日志文件,以节省空间
3. logrotate本身不是系统进程,它是通过计划任务crond每天执行
logrotate:这是日志的一种分离工具,它不是一个服务;因为它不是一个服务,它是以工具的方式存在;所以它需要设置好规则以后,手工去执行的;就像脚本一样;每次手工执行一次它,它都会扫描所有设置它日志的文件,如果符合规则就把它分离出去;所谓的分离日志其实就是改名,在重新创建一个日志文件,新的日志就往空的日志文件里面记录;所以我们需要设置好东西以后来学习后面的计划任务;我们有很多的工具都是手工执行的,通过计划任务来完成;默认情况下这是系统工具自带的一个包;
[root@server ~]# rpm -qa |grep logrotate
logrotate-3.7.8-17.el6.x86_64 #默认是安装了的;跟随主日志服务,由于装了这个包,默认情况下很多日志是可以自动分离的
[root@server ~]# cd /etc/cron.daily/ #这是计划任务目录,所有想每天执行的程序都可以把程序的运行文件放到这个目录里面,脚本也可以,凡是放到这个目录里的可执行文件每天都会执行;当我们装好logrotate-3.7.8-17.el6.x86_64以后,会默认创建一个/etc/cron.daily/logrotate文件
[root@server cron.daily]# rpm -ql logrotate |more#查看包里面包含哪个文件
/etc/cron.daily/logrotate
/etc/logrotate.conf
/etc/logrotate.d
/usr/sbin/logrotate
/usr/share/doc/logrotate-3.7.8
/usr/share/doc/logrotate-3.7.8/CHANGES
/usr/share/doc/logrotate-3.7.8/COPYING
/usr/share/man/man5/logrotate.conf.5.gz
/usr/share/man/man8/logrotate.8.gz
/var/lib/logrotate.status
[root@server cron.daily]# cat /etc/cron.daily/logrotate
/usr/sbin/logrotate /etc/logrotate.conf &/dev/null 2&&1 &&&&&#规则是写在/etc/logrotate.conf,它是日志的主配置文件
EXITVALUE=$? &#指的是退出值
if [ $EXITVALUE != 0 ]; then &#如果上一条命令没有执行成功
&&&&/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" #就插一条日志到系统
exit 0 &&&&&&&#logrotate不用设置计划任务,默认是已经设置好了
我们到单位里面,先看linux版本有没有装logrotate以及装完了之后,它是不是自动的每天执行;需要我们去检查的;如果没有就需要我们自己写这么一个脚本
接下来讲logrotate的主配置文件;里面写的规则是什么样的,都包含哪些规则内容
[root@server ~]# vim /etc/logrotate.conf #这是logrotate的主配置文件
配置文件里面主要分为两个部分:
第一部分:默认规则(1到20行)
第二部分:是具体的日志规则(21行到底)
主配置文件
[root@localhost ~]# vim /etc/logrotate.conf (详细信息在man手册里)
=========全局设置==========
weekly &#每隔一个星期检测一次,检测时候分不分离取决于条件;;这里规定是每隔一个星期检查一次,而上面脚本是每隔一天检查一次,具体如何判断?每天执行不意味着每天都要分离,它会有一个最短的周期,周期不到不分离
rotate 4 #保留4份
create #轮转后创建新文件 ,一旦分离为不为它创建一个新的日志文件
dateext &&&#使用日期作为后缀 分离出来的文件用不用文件日期
#compress #分离的时候是否压缩;默认没有压缩,因为压缩之后还得解压
# RPM packages drop log rotation information into this directory &#rpm安装的程序,按照下面目录规则进行轮转;
include /etc/logrotate.d &#包含该目录下的文件;意思是下面21行以后的可以写成文件保存在这个目录里面;里面有很多日志条目的文件
# no packages own wtmp and btmp -- we‘ll rotate them here &#对于wtmp和btmp这样无主的日志,按照下面配置进行轮转
/var/log/wtmp { &#对该日志文件设置轮转的方法
&&&&monthly &#一月轮转一次
&&&&minsize 1M #最小达到1M才轮转
&&&&&&&&&&&&&&&&# PS:就算到了一个月,如果日志不到1M,也不能轮转
&&&&create 0664 root utmp #轮转后创建新文件,并设置权限
&&&&rotate 1 &&&&&#保留一份
/var/log/btmp {
&&&&missingok #丢失不提示
&&&&monthly #每月轮转一次
&&&&create 0600 root utmp #轮转后创建新文件,并设置权限
&&&&rotate 1 &&&&#保留一份
日志的规则:
周期满足,分离
周期满足,大小不满足,不分离
周期满足,大小满足,分离
[root@server ~]# /usr/sbin/logrotate /etc/logrotate.conf #手动执行日志分离一次
[root@server ~]# /usr/sbin/logrotate -f /etc/logrotate.conf #手动执行强制日志分离一次;即使不满足分离条件;但是指定了notifempty,日志文件为空不分离
例1:轮转文件/var/log/yum.log
# vim /etc/logrotate.d/yum &原有的设置
/var/log/yum.log { &&&&#yum日志文件
&&&&missingok #丢失不提示
&&&&notifempty #如果为空,不轮转
&&&&size 30k &&&&#30k
&&&&yearly #一年轮转一次
&&&&&&&&&&&&&&&&&&&&&&&&PS:到了一年或者大小达到30k都要轮转
&&&&create 0600 root root #创建新文件
# vim /etc/logrotate.d/yum 修改后的设置
/var/log/yum.log {
&&&&&&&missingok
# &&&notifempty
# &&&size 30k
# &&&yearly
&&&&&&daily
&&&&&&rotate 3
&&&&&&create 0777 root root
# /usr/sbin/logrotate /etc/logrotate.conf &&#手动轮转
# grep ‘yum‘ /var/lib/logrotate.status &&#记录所有日志文件最近轮转的时间
"/var/log/yum.log"
# /usr/sbin/logrotate /etc/logrotate.conf
/var/log/messages { &&&脚本,在轮转之前先去掉日志的A属性,轮转之后再加上;轮转就是分离
&&&&Prerotate #去掉属性
&&&&&&&chattr -a /var/log/abc.log
&&&&endscript
&&&&#notifempty
create 0600 root root
&&&&missingok
&&& rotate 5
&&&&Postrotate #增加属性
&&&&&&&&chattr +a /var/log/abc.log &#这就是它的只能追加不能修改的属性;只能增加不能修改是无法分离的
&&&&endscript
脚本支持两个关键字:一个是prerotate,另外一个是 postrotate
prerotate:分离之前执行命令
postrotate:分离成功之后执行命令
对于日志来讲,处于安全来讲会给它加上一些属性
split:这个命令是用来切日志的;用它可以将大文件切成多个小文件;可以按照要求切,切得速度相当快,如果有50个G的日志,两分钟剧可以切完;比拷贝都快;所谓的切就是创建一个文件,完了把它拷进去
rpm装的包默认有logrotate服务,分离规则是放到里面的;而源码包没有
[root@server ~]# man split
-b:指定大小
例题:把一个大文件切成小文件;文件是一个G的
[root@server tmp]# dd & /dev/zero & dafile.txt bs=100M count=10 #文件变成一个G
10+0 records in
10+0 records out
bytes (1.0 GB) copied, 15.3686 s, 68.2 MB/s
[root@server tmp]# sync
[root@server tmp]# ls
dafile.txt &#就有这个文件了
[root@server tmp]# du -m dafile.txt &#查看文件大小
1001 dafile.txt
[root@server tmp]# split -b 1M dafile.txt &#切成1M的大小
split: output file suffixes exhausted
[root@server tmp]# ls #这样就切出来了(里面有很多,这里省略了)
xcp &&&&&&&&&&&&&&&&&xfn &xil &xlj &xoh &xrf &xud &xxb &xzz
xcq &&&&&&&&&&&&&&&&&xfo &xim &xlk &xoi &xrg &xue &xxc &yum.log
[root@server tmp]# du -m xcl
切大文件的时候最好把它放到一个单独的目录里面
&&&&&&&&&&&&&&&&&&&&&&&&下面是计划任务cron
cron:作用: &计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据
[root@server ~]# ps aux |grep cron |grep -v ‘grep‘
root &&&&&& &0.1 40 ? &&&&&&&Ss &&22:15 &&0:00 crond
crond进程每分钟检查一次,以运行相应的任务
crond日志文件/var/log/cron
[root@server ~]# cd /etc/cron #每天的脚本和程序都放到这个目录里面,它就会每天执行
cron.d/ &&&&&&cron.deny &&&&cron.monthly/ cron.weekly/
cron.daily/ &&cron.hourly/ &crontab &&&&&
每星期执行的放到cron.weekly/
如果想不让某个用户执行计划任务,我们可以把用户名直接写到文件cron.deny里面;这个用户就不能设置计划任务了
或者用[root@server ~]# crontab -e &#创建计划任务
用crontab不能直接写命令行,不能使用执行引用’’,执行引用可以放脚本中,写脚本名,有执行权限
里面有个关键点,除了星期不取交集,其它时间都取交集;
[root@server ~]# crontab -e
00 02 16 03 07 #这里的07指的是星期天;这里的感觉就是每年的3月16日晚上两点整的时候,而且那天是星期天的时候;其实不是这个意思;意思是每年3月6日两点整和每周日两点整都可以;也就是说整个时间格式当中如果日期一旦写了,日期和前面四个数字取得是或得关系,它是避免出现错误;指的是如果3月16日不是星期天;
00 02 * * * ls &#是每周日晚上两点或3月16日晚上两点
00 02 16 03 * &#所以一般星期几不写
00 02 * * 07 #或者不写日期
00 02 * * 7 ls &#每周日2:00整
00 02 14 2 * ls &#每年2月14号2:00整
如果要写每分钟执行:01 * * * * #这样写是不对的,这样写是每小时第一分钟;要想表示每分钟执行:*/01 * * * *
01 02 * * * #每天两点
计划任务两种定义方法:一种是放到/etc/cron对应的文件里面;另外一种是指定时间格式;用crontab -e执行
[root@localhost ~]# crontab -e #创建计划任务
* * * * * /bin/ls
[root@localhost ~]# crontab -l &#查看计划任务的具体内容
* * * * * /bin/ls
crontab -r删除计划任务
[root@server ~]# tail /var/log/cron #查看日志
我们设计好计划任务之后,它都会产生一个临时文件
[root@server ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@server ~]# crontab -l
00 02 * * * bash /tmp/abc.sh
如果要修改计划任务有两种方法:第一种:
[root@server ~]# crontab -e #进去直接修改
第二种方法:找到计划任务的保存位置:
[root@server ~]# cd /var/spool/cron/ #关于每个计划任务的目录
[root@server cron]# ls
root &#一个用户一个文件;这个文件里记录的就是用户的计划任务
[root@server cron]# cat root
00 02 * * * bash /tmp/abc.sh
换句话讲。Tab会每隔一段时间来扫描所有用户的文件
00 02 * * * ls //每天2:00整
00 02 1 * * ls & //每月1号2:00整
00 02 14 2 * ls //每年2月14号2:00整
00 02 * * 7 ls & //每周日2:00整
00 02 14 2 7 ls //每年2月14号2:00整 &或者 &每周日2:00整,这两个时间都执行
00 02 * * * ls //每天2:00整
* &&02 * * * ls //每天2:00中的每一分钟
* * * * * ls //每分钟执行ls
* * 14 2 * ls //2月14号的每分钟
以下是特殊写法:
*/5 * * * * ls //每隔5分钟
00 02 1,5,8 * * ls //每月1,5,8号的2:00整
00 02 1-8 * * ls //每月1到8号的2:00整
切记:计划任务是个服务;如果想执行计划任务,首先先确保这个服务是开着的
[root@server cron]# service crond status #默认是运行的,哪怕最小化安装也是运行的
crond (pid &1759) is running...
如果关闭会导致很多和它关联的服务出问题
案例1:备份etc目录,要求:
1. 每天4:00备份/etc目录到/var/back
2. 将备份命令写在脚本中,如/root/back.sh,加执行权限
3. 每天备份的文件名包含当天的日期,如_etc.tar.gz
4. 计划任务执行时,屏幕不产生任何输出 &&/dev/null
5. 只保留最近5天的备份 find /var/back -mtime +5 |xargs rm -rf
1. 编写脚本
[root@localhost ~]# vim /root/back.sh
第一种版本
tar -czf /var/back/`date +%F`_etc.tar.gz /etc &&
find /var/back -mtime +5 |xargs rm -rf #把5天前的备份找出来并且删掉
第二种版本
#!/bin/bash
filename=`date +%F`_etc.tar.gz #定义文件名
back_dir=/var/back &#定义存放的目录
# 判断备份文件存放目录是否存在
if [ ! -d $back_dir ];then
&&&&&&&&&&&mkdir -p $back_dir &#不存在就创建这个目录
tar -czf ${back_dir}/$filename /etc &&/dev/null
#删除修改时间超过5天的文件
cd ${back_dir}
find . -mtime +5 |xargs rm -rf
接下来是把计划任务放到脚本里面去执行
手动测试脚本
[root@localhost ~]# chmod a+x /root/back.sh
[root@localhost ~]# chattr +i /root/back.sh
[root@localhost ~]# /root/back.sh
[root@localhost ~]# ll /var/back/
总计 11720
-rw-r--r-- 1 root root -14 17:59 _etc.tar.gz
[root@localhost ~]# date
[root@localhost ~]# /root/back.sh
[root@localhost ~]# ll /var/back/
-rw-r--r-- 1 root root -14 17:59 _etc.tar.gz
-rw-r--r-- 1 root root -15 12:00 _etc.tar.gz
&配置cron执行脚本
[root@localhost ~]# crontab -e
0 4 * * * /root/back.sh
[root@localhost ~]# crontab -l &&&&&&&&
0 4 * * * /root/back.sh
[root@localhost ~]# tail /var/log/cron &&#计划任务有没有执行通过日志查看;默认计划任务的日志是在这个位置;这个是由配置文件/etc/rsyslog.conf(第52行)决定的
Sep 20 12:03:01 localhost crond[5873]: (alice) CMD (ls)
Sep 20 12:03:42 localhost crontab[5870]: (root) REPLACE (root)
Sep 20 12:03:42 localhost crontab[5870]: (root) END EDIT (root)
Sep 20 12:03:46 localhost crontab[5880]: (root) LIST (root)
Sep 20 12:04:01 localhost crond[5882]: (alice) CMD (ls)
Sep 20 12:05:01 localhost crond[5895]: (alice) CMD (ls)
Sep 22 04:00:20 localhost crond[5909]: (alice) CMD (ls)
Sep 22 04:00:20 localhost crond[5912]: (root) CMD (/root/back.sh)
计划任务里面最好使用绝对路径
例题,写个计划任务,每分钟创建一个文件
[root@server cron]# crontab -e
*/01 * * * * /bin/touch&/tmp/uplooking.fil #第一次是创建,之后每分钟在创建就是修改它的时间
计划任务默认只支持分钟,不支持秒;但是通过设置也可以支持秒
让任务实现秒级执行
一、通过计划任务实现
每隔10秒执行命令date
* * * * * date &/dev/pts/1 &#每时每刻都执行
* * * * * sleep 10; date &/dev/pts/1 &#等10秒在执行
* * * * * sleep 20; date &/dev/pts/1
* * * * * sleep 30; date &/dev/pts/1
* * * * * sleep 40; date &/dev/pts/1
* * * * * sleep 50; date &/dev/pts/1
二、通过程序实现
# vim while01.sh
#!/bin/bash
&&&&&&&&echo "ok"
&&&&&&&&sleep 5
&&&&&&&&&&&&&&&&&&&&&&&网络配置
一、常见的网络接口
lo &#本地环回接口 ;这个网卡永远代表自己;lo虽说没用,但你还不能把它停了;很多local host解析的就是自己;127开头的IP代表的是自己
eth0 &#以太网接口
wlan0 #无线接口
bond0 #bonding接口----------&又叫绑定网卡;多块物理网卡绑定后产生的虚拟接口(有什么意义:不都还是从其中一块网卡走数据么?)
virbr0 #桥接接口虚拟交换机;虚拟机网卡
br0 &#桥接接口 虚拟交换机
vnet0 &#KVM虚拟交换机接口
网络基础知识:
IP ipv4(32 bit) &&&ipv6(128 bit)
MAC 48 bit实际数据传输时候依靠MAC48 bit
子网掩码 ipv4(32 bit) 帮助确定我们自己在对方哪个网段
路由查询路由表走路的过程,比如:往一个网段传点东西,先要确定这个网段是否通着,这个网段就叫路由
网关说白了,就是快递
OIS七层模型
TCP/IP四层模型
公有地址:
IP分类 缺省掩码
A 1-127 /8
B 128-191 /16
C 192-223 /24
D 224-239 组播地址
E 240-247 保留地址
私有地址:
A:10.0.0.0 - 10.255.255.255
B: &172.16.0.0 - 172.31.255.255
C: &192.168.0.0 - 192.168.255.255
临时:立即生效,重启失效(测试、集群节点间的浮动IP...)
1. 修改主机名
# hostname tianyun.uplooking.com
# ifconfig eth0 192.168.2.252/24 up //修改eth0的IP
# ifconfig eth0:0 192.168.2.252/24 up //给eth0增加IP
# ifconfig eth0:1 192.168.2.251/24 up //给eth0增加IP
# ip addr add dev eth0 192.168.2.252/24 //增加新的临时IP
# ip addr add 192.168.3.252/24 dev eth0
# ip addr show eth0
3. 设置网关(默认路由)
# route add default gw 192.168.2.254 &&&&&&&&&&&添加网关
# route -n
# route del default gw 192.168.2.254
# ip route add default via 192.168.2.254 dev eth0
# ip route
# ip route del default via 192.168.2.254 dev eth0标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/ztc1990/p/7000127.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!博客分类:
 成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。Linux 中提供了异常日
志,并且日志的细节是可配置的。Linux 日志都以明文形式存储,所以用户不需要特殊的工具就可以搜索和阅读它们。还可以编写脚本,来扫描这些日志,并
基于它们的内容去自动执行某些功能。Linux 日志存储在 /var/log 目录中。这里有几个由系统维护的日志文件,但其他服务和程序也可能会把它
们的日志放在这里。大多数日志只有root账户才可以读,不过修改文件的访问权限就可以让其他人可读。
  RedHat Linux常用的日志文件
  RedHat Linux常见的日志文件详述如下
  /var/log/boot.log
  该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息。
  /var/log/cron
  该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的
一个动作是cron派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。
RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查
到一些反常的情况。
  /var/log/maillog
  该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。下面是该日志文件的片段:
4 17:23:52 UNIX sendmail[1950]: g849Npp01950: from=root, size=25,
class=0, nrcpts=1,
msgid=&.g849Npp01950@redhat.pfcc.com.cn&,
relay=root@localhost
4 17:23:55 UNIX sendmail[1950]: g849Npp01950: to=,
ctladdr=root (0/0), delay=00:00:04, xdelay=00:00:03, mailer=esmtp, pri=30025,
relay=fcceec.net. [10.152.8.2], dsn=2.0.0, stat=Sent (Message queued)
/var/log/messages
  该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。如以下几行:
3 08:30:17 UNIX login[1275]: FAILED LOGIN 2 FROM (null) FOR suying,
Authentication failure
4 17:40:28 UNIX
-- suying[2017]: LOGIN ON pts/1 BY suying FROM
fcceec.www.ec8.pfcc.com.cn
4 17:40:39 UNIX su(pam_unix)[2048]: session opened for user root by suying(uid=999)
  该文件的格式是每一行包含日期、主机名、程序名,后面是包含PID或内核标识的方括号、一个冒号和一个空格,最后是消息。该文件有一个不足,
就是被记录的入侵企图和成功的入侵事件,被淹没在大量的正常进程的记录中。但该文件可以由/etc/syslog文件进行定制。由/etc
/syslog.conf配置文件决定系统如何写入/var/messages。有关如何配置/etc/syslog.conf文件决定系统日志记录的行
为,将在后面详细叙述。
  /var/log/syslog
  默认RedHat Linux不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。它和/etc/log
/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。要让系统生成该日志文件,在/etc
/syslog.conf文件中加上:*.warning /var/log/syslog   该日志文件能记录当用户登录时login记录下的错误口
令、Sendmail的问题、su命令执行失败等信息。下面是一条记录:
6 16:47:52 UNIX login(pam_unix)[2384]: user unknown
/var/log/secure
该日志文件记录与安全相关的信息。该日志文件的部分内容如下:
4 16:05:09 UNIX xinetd[711]: START: ftp pid=1815 from=127.0.0.1
4 16:05:09 UNIX xinetd[1815]: USERID: ftp OTHER :root
4 16:07:24 UNIX xinetd[711]: EXIT: ftp pid=1815 duration=135(sec)
4 16:10:05 UNIX xinetd[711]: START: ftp pid=1846 from=127.0.0.1
4 16:10:05 UNIX xinetd[1846]: USERID: ftp OTHER :root
4 16:16:26 UNIX xinetd[711]: EXIT: ftp pid=1846 duration=381(sec)
4 17:40:20 UNIX xinetd[711]: START: telnet pid=2016 from=10.152.8.2
/var/log/lastlog
  该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件是二进制文件,需要使用
lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过,就显示
为"**Never logged in**"。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似如下的信息:
3 08:32:27 +
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
3 14:49:04 +
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
**Never logged in**
Mon Jul 15 08:50:37 +
3 08:31:17 +
  系统账户诸如bin、daemon、adm、uucp、mail等决不应该登录,如果发现这些账户已经登录,就说明系统可能已经被入侵了。若发现记录的时间不是用户上次登录的时间,则说明该用户的账户已经泄密了。
  /var/log/wtmp
  该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取
决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记
录,last也能根据用户、终端 tty或时间显示相应的记录。
  命令last有两个可选参数:
  last -u 用户名 显示用户上次登录的情况。
  last -t 天数 显示指定天数之前的用户登录情况。
  /var/run/utmp
  该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保
留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信
息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。
  以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文
件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故不能用less、cat之类的命令直接查看这些文件,而是
需要使用相关命令通过这些文件而查看。其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数
据结构可以使用man命令查询。
  每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。如果存在,则把用户上次登录、注销时间和主机名写到标准输出
中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文
件被各种命令使用,包括who、w、users和finger。
  下一步,login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。
  /var/log/xferlog
  该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。
  该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型
(a:ASCII,b:二进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务器而言:i代表进,o代表出)、访问模
式(a:匿名,g:输入口令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或0),认证用户的ID或"*"。下面是该
文件的一条记录:
4 08:14:03 2002 1 UNIX 275531
/var/ftp/lib/libnss_files-2.2.2.so b _ o a -root@UNIX ftp 0 * c
/var/log/kernlog
   RedHat Linux默认没有记录该日志文件。要启用该日志文件,必须在/etc/syslog.conf文件中添加一
行:kern.* /var/log/kernlog 。这样就启用了向/var/log/kernlog文件中记录所有内核消息的功能。该文件记录了系
统启动时加载设备或使用设备的情况。一般是正常的操作,但如果记录了没有授权的用户进行的这些操作,就要注意,因为有可能这就是恶意用户的行为。下面是该
文件的部分内容:
5 09:38:42 UNIX kernel: NET4: Linux TCP/IP 1.0 for NET4.0
5 09:38:42 UNIX kernel: IP Protocols: ICMP, UDP, TCP, IGMP
5 09:38:42 UNIX kernel: IP: routing cache hash table of 512 buckets, 4Kbytes
5 09:38:43 UNIX kernel: TCP: Hash tables configured (established 4096 bind 4096)
5 09:38:43 UNIX kernel: Linux IP multicast router 0.06 plus PIM-SM
5 09:38:43 UNIX kernel: NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
5 09:38:44 UNIX kernel: EXT2-fs warning: checktime reached, running e2fsck is recommended
5 09:38:44 UNIX kernel: VFS: Mounted root (ext2 filesystem).
5 09:38:44 UNIX kernel: SCSI subsystem driver Revision: 1.00
/var/log/Xfree86.x.log
  该日志文件记录了X-Window启动的情况。另外,除了/var/log/外,恶意用户也可能在别的地方留下痕迹,应该注意以下几个地
方:root和其他账户的shell历史文件;用户的各种邮箱,如.sent、mbox,以及存放在/var/spool/mail/ 和 /var
/spool/mqueue中的邮箱;临时文件/tmp、/usr/tmp、/var/tmp;隐藏的目录;其他恶意用户创建的文件,通常是以"."开头
的具有隐藏属性的文件等。
  具体命令
  wtmp和utmp文件都是二进制文件,它们不能被诸如tail之类的命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac等命令来使用这两个文件包含的信息。
  who命令
  who命令查询utmp文件并报告当前登录的每个用户。who的默认输出包括用户名、终端类型、登录日期及远程主机。例如,键入who命令,然后按回车键,将显示如下内容:
chyang pts/0 Aug 18 15:06
ynguo pts/2 Aug 18 15:32
ynguo pts/3 Aug 18 13:55
lewis pts/4 Aug 18 13:35
ynguo pts/7 Aug 18 14:12
ylou pts/8 Aug 18 14:15
  如果指明了wtmp文件名,则who命令查询所有以前的记录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。
  w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如,键入w命令,然后按回车键,将显示如下内容:
3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
chyang pts/0 202.38.68.242 3:06pm 2:04 0.08s 0.04s -bash
ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w
lewis pts/3 202.38.64.233 1:55pm 30:39 0.27s 0.22s -bash
lewis pts/4 202.38.64.233 1:35pm 6.00s 4.03s 0.01s sh /home/users/
ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail
ylou pts/8 202.38.64.235 2:15pm 1:09m 0.10s 0.04s -bash
  users命令
  users命令用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。例如,键入users命令,然后按回车键,将显示如下内容:
  chyang lewis lewis ylou ynguo ynguo
  last命令
  last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。例如:
chyang pts/9 202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49)
cfan pts/6 202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14)
chyang pts/4 202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40)
lewis pts/3 202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03)
lewis pts/2 202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12)
  如果指明了用户,那么last只报告该用户的近期活动,例如,键入last ynguo命令,然后按回车键,将显示如下内容:
ynguo pts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30)
ynguo pts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44)
ynguo pts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16)
ynguo pts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25)
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12)
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11)
ynguo pts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55)
  ac命令
  ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间(小时),如果不使用标志,则报告总的时间。例如,键入ac命令,然后按回车键,将显示如下内容:
  total 5177.47
键入ac -d命令,然后按回车键,将显示每天的总的连接时间:
Aug 12 total 261.87
Aug 13 total 351.39
Aug 14 total 396.09
Aug 15 total 462.63
Aug 16 total 270.45
Aug 17 total 104.29
Today total 179.02
  键入ac -p命令,然后按回车键,将显示每个用户的总的连接时间:
ynguo 193.23
yucao 3.35
rong 133.40
hdai 10.52
zjzhu 52.87
zqzhou 13.14
liangliu 24.34
total 5178.24
  lastlog命令
  lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var
/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显
示**Never logged**。注意需要以root身份运行该命令,例如:
rong 5 202.38.64.187 Fri Aug 18 15:57:01 +
dbb **Never logged in**
xinchen **Never logged in**
pb9511 **Never logged in**
xchen 0 202.38.64.190 Sun Aug 13 10:01:22 +
另外,可加一些参数,例如,"last -u 102"命令将报告UID为102的用户;"last -t 7"命令表示限制为上一周的报告。
  进程统计
  UNIX可以跟踪每个用户运行的每条命令,如果想知道昨晚弄乱了哪些重要的文件,进程统计子系统可以告诉你。它还对跟踪一个侵入者有帮助。与
连接时间日志不同,进程统计子系统默认不激活,它必须启动。在Linux系统中启动进程统计使用accton命令,必须用root身份来运行。
accton命令的形式为:accton file,file必须事先存在。先使用touch命令创建pacct文件:touch /var/log
/pacct,然后运行accton:accton /var/log/pacct。一旦accton被激活,就可以使用lastcomm命令监测系统中
任何时候执行的命令。若要关闭统计,可以使用不带任何参数的accton命令。
  lastcomm命令报告以前执行的文件。不带参数时,lastcomm命令显示当前统计文件生命周期内记录的所有命令的有关信息。包括命令名、用户、tty、命令花费的CPU时间和一个时间戳。如果系统有许多用户,输入则可能很长。看下面的例子:
crond F root ?? 0.00 secs Sun Aug 20 00:16
promisc_check.s S root ?? 0.04 secs Sun Aug 20 00:16
promisc_check root ?? 0.01 secs Sun Aug 20 00:16
grep root ?? 0.02 secs Sun Aug 20 00:16
tail root ?? 0.01 secs Sun Aug 20 00:16
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.01 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.02 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.02 secs Sun Aug 20 00:15
sh root ?? 0.02 secs Sun Aug 20 00:15
ping S root ?? 0.00 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.02 secs Sun Aug 20 00:15
ping S root ?? 1.34 secs Sun Aug 20 00:15
locate root ttyp0 1.34 secs Sun Aug 20 00:15
accton S root ttyp0 0.00 secs Sun Aug 20 00:15
  进程统计的一个问题是pacct文件可能增长得十分迅速。这时需要交互式地或经过cron机制运行sa命令来保证日志数据在系统控制内。sa
命令报告、清理并维护进程统计文件。它能把/var/log/pacct中的信息压缩到摘要文件/var/log/savacct和/var/log
/usracct中。这些摘要包含按命令名和用户名分类的系统统计数据。在默认情况下sa先读它们,然后读pacct文件,使报告能包含所有的可用信息。
sa的输出有下面一些标记项。
avio:每次执行的平均I/O操作次数。
cp:用户和系统时间总和,以分钟计。
cpu:和cp一样。
k:内核使用的平均CPU时间,以1k为单位。
k*sec:CPU存储完整性,以1k-core秒为单位。
re:实时时间,以分钟计。
s:系统时间,以分钟计。
tio:I/O操作的总数。
u:用户时间,以分钟计。
842 173.26re 4.30cp 0avio 358k
2 10.98re 4.06cp 0avio 299k find
9 24.80re 0.05cp 0avio 291k ***other
105 30.44re 0.03cp 0avio 302k ping
104 30.55re 0.03cp 0avio 394k sh
162 0.11re 0.03cp 0avio 413k security.sh*
154 0.03re 0.02cp 0avio 273k ls
56 31.61re 0.02cp 0avio 823k ping6.pl*
2 3.23re 0.02cp 0avio 822k ping6.pl
35 0.02re 0.01cp 0avio 257k md5sum
97 0.02re 0.01cp 0avio 263k initlog
12 0.19re 0.01cp 0avio 399k promisc_check.s
15 0.09re 0.00cp 0avio 288k grep
11 0.08re 0.00cp 0avio 332k awk
用户还可以根据用户而不是命令来提供一个摘要报告。例如,键入命令"sa -m",将显示如下内容:
885 173.28re 4.31cp 0avk
root 879 173.23re 4.31cp 0avk
alias 3 0.05re 0.00cp 0avk
qmailp 3 0.01re 0.00cp 0avk
  syslog设备
  syslog已被许多日志函数采纳,它用在许多保护措施中。任何程序都可以通过syslog 记录事件。syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。
  syslog设备依据两个重要的文件:/etc/syslogd(守护进程)和/etc/syslog.conf配置文件。习惯上,多数
syslog信息被写到/var/adm或/var/log目录下的信息文件中(messages.*)。一个典型的syslog记录包括生成程序的名字
和一个文本信息。它还包括一个设备和一个优先级范围(但不在日志中出现)。
每个syslog消息被赋予下面的主要设备之一:
LOG_AUTH:认证系统login、su、getty等。
LOG_AUTHPRIV:同LOG_AUTH,但只登录到所选择的单个用户可读的文件中。
LOG_CRON:cron守护进程。
LOG_DAEMON:其他系统守护进程,如routed。
LOG_FTP:文件传输协议ftpd、tftpd。
LOG_KERN:内核产生的消息。
LOG_LPR:系统打印机缓冲池lpr、lpd。
LOG_MAIL:电子邮件系统。
LOG_NEWS:网络新闻系统。
LOG_SYSLOG:由syslogd(8)产生的内部消息。
LOG_USER:随机用户进程产生的消息。
LOG_UUCP:UUCP子系统。
LOG_LOCAL0~LOG_LOCAL7:为本地使用保留。
syslog为每个事件赋予几个不同的优先级:
LOG_EMERG:紧急情况。
LOG_ALERT:应该被立即改正的问题,如系统数据库被破坏。
LOG_CRIT:重要情况,如硬盘错误。
LOG_ERR:错误。
LOG_WARNING:警告信息。
LOG_NOTICE:不是错误情况,但是可能需要处理。
LOG_INFO:情报信息。
LOG_DEBUG:包含情报的信息,通常只在调试一个程序时使用。
  syslog.conf文件指明syslogd程序记录日志的行为,该程序在启动时查询配置文件。该文件由不同程序或消息分类的单个条目组
成,每个占一行。对每类消息提供一个选择域和一个动作域。这些域由tab符隔开:选择域指明消息的类型和优先级;动作域指明syslogd接收到一个与选
择标准相匹配的消息时所执行的动作。每个选项是由设备和优先级组成的。当指明一个优先级时,syslogd将记录一个拥有相同或更高优先级的消息。所以如
果指明"crit",那所有标为crit、alert和emerg的消息将被记录。每行的行动域指明当选择域选择了一个给定消息后应该把它发送到哪儿。例
如,如果想把所有邮件消息记录到一个文件中,如下所示:
#Log all the mail messages in one place
mail.* /var/log/maillog
  其他设备也有自己的日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志(/var/log/spooler)中并把级别限为"err"或更高。例如:
# Save mail and news errors of level err and higher in aspecial file.
uucp,news.crit /var/log/spooler
  当一个紧急消息到来时,可能想让所有的用户都得到,也可能想让自己的日志接收并保存:
#Everybody gets emergency messages, plus log them on anther machine
*.emerg @linuxaid.com.cn
  alert消息应该写到root和tiger的个人账号中:
#Root and Tiger get alert and higher messages
*.alert root,tiger
  有时syslogd将产生大量的消息。例如,内核("kernel"设备)可能很冗长。用户可能想把内核消息记录到/dev/console中。下面的例子表明内核日志记录被注释掉了:
#Log all kernel messages to the console
#Logging much else clutters up the screen
#kern.* /dev/console
  用户可以在一行中指明所有的设备。下面的例子把info或更高级别的消息送到/var/log/messages,除了mail以外。级别"none"禁止一个设备:
#Log anything(except mail)of level info or higher
#Don't log private authentication messages!
*.info:mail.authpriv.none /var/log/messages
  在有些情况下,可以把日志送到打印机,这样网络入侵者怎么修改日志就都没有用了。通常要广泛记录日志。syslog设备是一个攻击者的显著目标。一个为其他主机维护日志的系统对于防范服务器攻击特别脆弱,因此要特别注意。
有个小命令logger为syslog(3)系统日志文件提供一个shell命令接口,使用户能创建日志文件中的条目。
  用法:logger 
  例如:logger This is a test!
  它将产生一个如下的syslog记录:Aug 19 22:22:34 tiger: This is a test!
  注意,不要完全相信日志,因为攻击者很容易修改它的。
  程序日志与其他
  许多程序通过维护日志来反映系统的安全状态。su命令允许用户获得另一个用户的权限,所以它的安全很重要,它的日志文件为sulog。同样的
还有sudolog。另外,像Apache有两个日志:access_log和error_log。还有一些常用到的其他日志工具,我们就不一一阐述了,
有兴趣的读者可以参考下边网址的内容。
Chklastlog:
ftp://coast.cs.purdue.edu/pub/tools/unix/chklastlog/
ftp://coast.cs.purdue.edu/pub/tools/unix/chkwtmp/
dump_lastlog:
ftp://coast.cs.purdue.edu/pub/tools/unix/dump_lastlog.Z
ftp://coast.cs.purdue.edu/pub/tools/unix/TAMU/
http://www.lomar.org/komar/alek/pres/swatch/cover.html
ftp://caost.cs.purdue.edu/pub/tools/unix/zap.tar.gz
日志分类方法:
http://csrc.nist.gov/nissc/1998/proceedings/paperD1.pdf
grep、fgrep、egrep
语法:grep[选项][查找模式][文件名1,文件名2,……]
引用:-E 每个模式作为一个扩展的正则表达式对待
-F 每个模式作为一组固定字符串对待,而不作为正则表达式
-i 比较时不区分大小写
-l 显示首次匹配匹配串所在的文件名并用换行符将其分开。当在文件中多次出现匹配串时,不重复显示次文件名;
-x 只显示整行严格匹配的行
1.2文件查找命令 find、locate
find 起始目录 寻找条件 操作
以名称和文件属性查找
引用:-name‘字串‘ 查找文件名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-lname‘字串‘ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符*、?、[]。
-gid n 查找属于ID号为n的用户组的所有文件。
-uid n 查找属于ID号为n的用户的所有文件。
-group‘字串‘ 查找属于用户组名为所给字串的所有的文件。
-user‘字串‘ 查找属于用户名为所给字串的所有的文件。
-path‘字串‘ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[]。
-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711、644。
-type x 查找类型为 x的文件,
语法:locate 相关字
1.3文件的复制、删除和移动命令
文件复制命令
cp [选项] 源文件或目录 目标文件或目录
引用:- a 通常在拷贝目录时使用
-d 拷贝时保留连接
-f 删除已经存在的目标文件而不提示
-i 和f选项相反
-p 此时cp除复制源文件内容外,还将其修改的时间和访问权限也复制到新文件中
-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下的所有的子目录和文件,此时目标文件必须为一个目录名;
-l 不作拷贝,只是链接文件
文件移动命令
mv[选项] 源文件或目录 目标文件或目录
引用:-i 交互式操作
-f 禁止交互式操作
文件删除命令
rm[选项] 文件…
引用:-f 忽略不存在的文件,从不给出提示
-r 指示rm将参数中列出的全部目录和子目录均递归地删除
-i 进行交互式删除
1.4文件链接命令
ln [选项] 目标 [链接名] 或 ln [选项] 目标 目录
引用:选项:
- s 建立符号链接
1.5目录的创建和删除命令
mkdir 创建一个目录
mkdir [选项] dirname
- m 对新建目录设置存取权限
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
rmdir 删除空目录
rmdir [选项] dirname
引用:选项:
- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
1.6改变工作目录,显示目录内容命令
1、改变工作目录
cd [directory]
2、显示当前工作的目录的绝对路径:
3、显示目录内容:
ls [选项] [目录或是文件]
引用:选项:
- a 显示指定目录下所有子目录与文件,包括隐藏文件;
-c 按照文件的修改时间排序
-C 分成多列显示各项
-d 如果参数是目录,只显示其名称而不显示其下的个文件
-F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
-l 以长格式来显示文件的详细信息
-L 若指定的名称为一个符号链接,则显示链接所指向的文件
-t 显示时按修改时间而不是名字排序
-u 显示时按文件上次存取的时间而不是名字排序
4、改变文件或目录的访问权限命令
chmod [who] [+| - | = ] [mode] 文件名?
引用:Who选项:
- u表示用户,即文件和目录的所有者
-g表示同组用户
-o(other)表示其他用户
-a (all)表示所有用户
引用:操作符号:
+ 添加某个权限 - 取消某个权限
= 赋予给定权限并取消其他所有的权限(如果有的话)
引用:mode 选项:
chgrp [-R] group filename? 改变目录或文件所属的组
chown [-Rv] 用户或组 文件
1.7备份与压缩命令
1、tar命令 为文件和目录创建档案
tar [主选项+辅助选项] 文件或者目录
引用:u 主选项
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,则选此项
r 把要存档的文件追加到档案文件的末尾
t 列出档案文件的内容,查看已经备份了哪些文件;
u 更新文件
x 从档案文件中释放文件;
u 辅助选项
b 该选项为磁带机设定的,其后跟一位数字,用来说明区块的大小,系统预设值为20
f 使用档案文件或设备,这个选项通常是必选的
k 保存已经存在的文件。例如把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖;
m 在还原文件时,把所有文件的修改时间设定为现在;
M 创建多卷的档案文件,以便在几个磁盘中存放;
v 详细报告tar处理的文件信息
w 每一步都要求确认
z 用gzip来压缩/解压缩文件
2、gzip命令 压缩/解压缩命令
gzip [选项] 压缩(解压缩)的文件名
引用:选项:
-c 将输出写到标准输出上,并保留原有文件
-d 将压缩文件解压
-l 显示每个压缩文件的详细信息
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩
-t 测试、检查压缩文件是否完整
-v 对每一个压缩和解压的文件,显示文件名和压缩比
3、unzip 命令
用MS windows下的压缩软件winzip压缩的文件在linux系统下展开
unzip [选项] 压缩文件名.zip
引用:选项:
-x 文件列表 解压缩文件,但不包括指定的file文件
-v 查看压缩文件目录,但不解压
-t 测试文件有无损坏 ,但不解压
-d 目录 将压缩文件解到指定目录下
-z 只显示压缩文件的注解
-n 不覆盖已经存在的文件
-o 覆盖已经存在的文件且不要求用户确认
-j 不重建文档的目录结构,把所有文件解压到同一目录下
1.8在LINUX环境下运行DOS命令
linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读写文件和目录。
引用:mcd 目录名 改变MSDOS目录
mcopy 源文件 目标文件 在MSDOS和UNIX之间复制文件;
mdel 目录名 删除MSDOS目录
mdir 目录名 显示MSDOS目录
mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统
rnlabel 驱动器号 产生MSDOS卷标
mmd 目录名 删除MSDOS目录
mren 源文件 目标文件 重新命名已存在的MSDOS文件
mtype 文件名 显示MSDOS文件的内容
[size=18]2 设备管理命令
1)linux采用下面的形式定义一个IDE硬盘:
/dev/hd[drive][partition]
2)SCSI硬盘使用同样的机制表示:
/dev/sd[drive][partition]
3)对于一般的LINUX分区,可以用mkfs将其格式化并生成文件系统,命令如下:
mk2fs –c &partition& &size&
4)装载文件系统:
mount –t ext2 [-o optioms] partition mountpiont
引用:-t为指定装载文件系统的类型;
-o指定一些选项,如只读ro,可读可写rw等等;
partition定义分区名称;
mountpiont定义文件系统被装载的目录名称。
5)装载CD-ROM文件系统:
mount –t iso9660 –r /dev/cdrom /mnt/cdrom
6)装载软驱文件系统:
mount –t msdos –rw /dev/fd0 /dev/mnt/floppy
7)卸载文件系统
umount /mnt/cdrom
磁带设备的安装要注意以下几点:
引用:1、 首先要选择一个唯一的SCSI ID号,然后再将设备链接到适当的位置
2、 选择驱动程序。
3、 生成设备文件。SCSI磁带设备的主要设备号是9,次要设备号是0。设备文件名通常是/dev/nrst0(不支持回绕的磁带设备)或/dev/nst0(支持回绕的磁带设备)
用 ls /dev/*rst*
检查磁带设备文件是否存在,如果不存在,用
mknod –m 666 /dev/nrst0 c 9 9
mknod –m 666 /dev/rst0 c 9 0 生成
4、 可以对块长度、缓存、磁带密度等参数进行一些设置,例如
mt setblk 20 将块长度指定为20
mt setblk 0 指定块程度没有限制
5、 通过检查系统的启动信息可以确定系统是否识别了新的磁带设备。用dmesg命令,查看是否有以下类似的信息:
aha274x:target 4now synchronous at 4.4Mb/s
Vendor:TANDBERG Model:TDC 3800 Rev: =05:
Type: Sequential-Access ANSI SCSI revision: 02
Detected scsi tape st0 at scsi0, id4, lun0
Scsi : detected 1 SCSI tape 1 SCSI crom 1 SCSI disk total
[size=18]3 软件包管理命令
3.1软件安装的步骤
在LINUX系统上安装软件的步骤有:
引用:1、 查找所要安装软件的源文件
2、 把源文件解开放到一个目录中,命令如下:
tar zxvf &源文件名&
3、 针对本操作系统配置源文件。可以是编辑make文件或其他文件,也可能是运行该软件自带的自动配置工具,如./configure
4、 make源文件,通常是运行make命令,即执行 make
5、 安装二进制文件和其他支撑文件,运行命令: make install
6、 最后,完成所有其他必须的配置
3.2软件包管理命令
引用:rpm –ivh &软件包&
// 安装指定的软件包,并在安装过程中用#表示安装的进度
rpm –Uvh &软件包&
// 更新一个已经存在的或还没安装好的软件包,并删除所有该软件包的旧版本。
//卸载一个rpm软件包
// 查看系统中已经安装的软件包
rpm –q &软件包&
// 查看系统中某个软件包的版本号;
rpm –qlp &软件包&
//列出某个软件包中的所有文件
rpm –qf &软件包&
//找出一个文件属于哪个软件包
[size=18]4 LINUX系统常用命令
4.1 与系统管理有关的命令
Wall (Write All)
引用:对全部已 登录的用户发送信息,用户可以先反要发送的信息写好存入一个文件中,然后输入:
# wall & FileName
例:Wall ‘Thank you !’
向某一用户发送信息。
输入Ctrl+C组合即可终止
Shutdown命令
Shutdown [选项] [时间] [警告信息]
引用:-k 并不真正关机,而只是发出警告信息给所有的用户。
-r 关机后立即重新启动。
-h 关机后不重新启动。
-f 快速关机,启动时跳过fsck。
-n快速关机,不经过init程序。
-c 取消一个已经运行的shutdown
例:系统马上关机:Shutdown –h now
查看当前系统内存的使用情况,
Free [-b] [-k] [-m]
-b 以字节为单位显示。
-k 以K字节为单位显示。
-m 以M字节为单位显示。
引用:显示系统已经运行了多长的时间:现在时间、系统已经运行的时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
4.2与用户有关的命令
Passwd命令
设置、更换用户口令。
Passwd [用户名]
使一个普通的用户具有超级用户的权利,离开可用EXIT命令。
4.3其它命令
在显示器上显示一段文字,一般起到一个提示的作用。
echo [-n] 字符串
显示某年某月的日历。
cal [选项] [月[年]]
引用:选项的含义:
-j 显示也给定月中的每一天是一年中的和几天(从1月1日算起)。
-y 显示也整年的日历。
date命令的功能是显示和设置系统日期和时间。
4.4磁盘管理
磁盘空间管理
检查文件系统的磁盘空间占用局部。
引用:-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以K字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
- t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘窨使用情况(与t相反)。
-T 显示文件系统类型。
du的英文原意为disk usage,含义为显示磁盘空间的使用情况。功能是统计目录(或文件)所占磁盘空间的大小。
du [选项] [Names…]
引用:-s 对每人Names 参数只给也占用的数据块总数。
-a 递归地显示指定目录中各文件用子孙目录中的各文件占用的数据块总数。
-b 以字节为单位列也磁盘窨使用情部(缺省以K字节为单位)
-k 以1024字节为单位列也磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省)
-l 计算所有的文件大小,对硬链接文件,则计算多次。
-x 跳过在不同文件系统上的目录不予统计。
把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。语法:
dd [选项]
引用:if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
obs = bytes 一次写入bytes字节,即写 入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数(等于设置obs和obs)。
cbs = bytes 一次转换bytes字节。
count = blocks 只拷贝输入的blocks块。
conv = ASCII 把EBCDIC码转换为ASCII码。
conv = ebcdic 把ASCII码转换为EBCDIC码。
conv = ibm 把ASCII码转换为alternate EBCDIC码。
conv = blick 把变动位转换成固定字符。
conv = ublock 把固定们转换成变动位
conv = ucase 把字母由小写变为大写。
conv = lcase 把字母由大写变为小写。
conv = notrunc 不截短输出文件。
conv = swab 交换每一对输入字节。
conv = noerror 出错时不停止处理。
conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。
fdformat命令
低级格式化软盘。
format [-n] device
引用:-n 格式化后不做检验
4.5常用的网络命令
Telnet命令。
Netstat命令
引用:-a 显示所有的scoket,包括正在监听和。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同”ifconfig –e”
-n 以网络IP地址代替名称,显示也网络连接情形。
-r 显示核心路由表,格式同”route –e:。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
nslookup命令。
finger命令,功能是查询用户的信息。
(用户和组的管理可以使用工具:TurboUserCfg或是XturboUserCfg。)
4.6有关进程的命令。
进程和启动
at [-V] [-q] [-f文件名] [-mldbv]时间
at –c 作业 [作业….]
AT命令启动的进程系统只执行一次。
batch [-V] [-q 队列] [-f 文件名] [-mv] [时间]
在系统负载较小时,资源比较空闲时执行。
按一定的时间间隔执行命令。
crontab命令
用于安装、删除或列出用于驱支cron后台进程的表格。
是一个比who命令更强大的命令
w –[husfV] [user]
-h 不显示标题。
-u 当列出当前进程和CPU时间时忽略用户名。
-s 使用短模式。不显示登录时间JCPU和PCPU时间。
-f 切换显示FROM项,也就是远程主机名项。
-V 显示版本信息。
user 只显示指定用户的情况。
-e 显示所有进程。
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。
动态显示系统当前的进程和其他状况。
[size=18]5系统的启动过程。
5.1初始启动
在PC机启动时,BIOS从指定的启动设备中读入“主引导记录”(MBR)。MBR的格式是:
地址偏移量 内容 大小
+00 h 可执行的代码(启动模块) 可能变化
+1BE h 第一分区表项 16字节
+1CE h 第二分区表项 16字节
+1DE h 第三分区表项 16字节
+1EE h 第四分区表项 16字节
+1FE h 可执行的标记(AA55 h) 2字节
启动模块包含足以装入操作系统的代码,或者是第二步的加载代码的位置。启动模块需要使用BIOS调用来从磁盘装入数据,而这些中断调用,如
INT 13h等,限制了最大磁盘柱面号为1023。这也就是说启动模块需要加载的一切内容,如初始内存磁盘、内核、启动的时间信息等,必须存放在
1024个柱面以内。
在MBR中只有四个分区表项,每个表项的格式如下:
地址偏移 内容 大小
+00h 分区状态:00代表非启动分区,80h代表启动分区 1字节
+01h 分区的起始位置 磁头 1字节
+02h 分区的起始位置 柱面和扇区 1字节
+04h 分区的类型 1字节
+05h 分区的结束位置 磁头 1字节
+06h 分区的结束位置 柱面和扇区 1字节
+08h 在主引导区和本分区的第一个扇区间的扇区数目 4字节
+0Ch 分区内的扇区数目 4字节
5.2 Linux的启动过程
1启动的命令行参数
在Linux启动时,它处理所有传递给它的命令行参数。这可以影响Linux的运行方式。命令行参数包括:
引用:mem=xxxM:定Linux可以使用的内存大小。这在用户的计算机系统有超过64MB的内存时才需要。因为从前的主板只对第一个64MB内存进行缓存,使用超过64MB的内存会使整个计算机的性能下降,所有内存均按无缓存的速度运行。
single:使Linux按单用户方式启动,缺省方式是多用户方式。
root=/dev/xxx:指定Linux要安装为根文件系统的设备。
init=&file&:指定作为初始化进程的文件。
initrd=&dev&:指定作为初始内存磁盘的设备。
ro:指定根文件系统为只读。
rw:指定根文件系统为可读可写。
2 Init进程
在内核初始化自身和找到的硬件设备后,在后台启动进程init(/sbin/init),init进程号1运行。
在UNIX世界中有许多启动过程的版本,一些是基于系统V,一些是基于BSD。大多数Linux版本使用系统V的实现方法,在这里描述的就是这样。
init是由文件/etc/inittab内容和功能控制的,随启动模式是单用户或多用户而不同。
引用:单用户模式:init进程忽略/etc/inittab文件,在执行少数几个脚本程序后调用/dev/console shell。这样,用户就可以有了一个shell,而且可以执行一定限度的任务。
多用户模式:init进程把系统带入/etc/inittab文件指定的运行级别。Init通过标准的Linux方法进入一个指定的进行级别。
3.进行级别
Linux与其他UNIX操作系统一样,可以任何时刻处于任何一个运行级别。这些运行级别提供的功能不同,为主要是由于其运行的服务方程序(后台daemon)的不同造成的。Linux共有6种运行级别。
引用:0:关闭计算机或终止计算机运行,这个级别就是系统停止运行。
1:单用户启动级别,系统只有一个用户,就是root,该用户在控制台登录。
2:多用户运行级别,但无网络功能。在这个运行级别,网络功能没有启动,但是系统允许多个用户登录,可以通过虚拟控制台或串行线路。
3:多用户模式,有网络功能。在这个运行级别,所有标准网络服务均被启动。
4:目前没有实现。
5:X11运行级别,在这个运行级别,X服务器软件运行,提供图形界面的登录方式。
6:系统重新启动。
查询当前运行级别:runlevel;
4在启动过程中运行的脚本
在init进程运行时,它负责查看缺省的运行级别,并进入该运行级别。这是通过运行在/etc/rc.d/rcX.d目录下的脚本程序来实现的,其中X代表运行的级别,即一个运行级别对应一个目录。不同的字母开头的文件有不同的作用。其中:
以K开头的脚本程序是系统离开某个运行级别时执行的,作用是停止某种服务。当系统从某个支持级别变为其他级别时,首先要进行原运行级别所对应的所有K程序。
以S开头的脚本程序是系统进入某个运行级别时所执行的,作用是启动某种服务。当系统改变为某个运行级别时,就要运行新运行级别所对应的所有S程序。
5增加启动脚本程序
用户可能有一些特定的硬件设备要初始化,或需要在系统启动时初始化一些其他应用程序,用户可以增加自己的初始化脚本程序来完成这些工作。通常步骤是:
复制一个已经存在的脚本,这样可以得到一个通用的框架格式。
修改这个脚本,以完成自己的需求,要注意使程序可以处理启动和关闭的参数,尽管可能关闭处理什么也不需要干。
把这个肢本拷贝到/etc/rc.d/init.d目录下,命名为”serv”。
按下面的方法在相应的目录下建立运行控制链接:
ln –s ../init.d/serv/etc/rc.d/rc3.d/s99 serv
进行测试。
[size=18]6 LILO和其他的启动模块
要启动Linux,启动模块是必须的。一般用于Linux的启动模块是LILO,LILO用自己的主引导区代替一般的主引导区。LILO可以通过修改/etc/lilo.conf文件内容来进行配置,对引导区内容的更新通过lilo命令来完成。
下面给也了一个装有DOS,TurboLinux3.4.0和RedHat 5.2系统的计算机的lilo.conf文件。在例子中的数字标号是用户加上去并要在文中详细解释的。
# more /etc/lilo.conf
boot=dev/had
map=/boot/map
instll/boot/boot.b
#表示启动盘是/dev/had,这是主IDE硬盘。
timeout=50
#表示等待用户输入的时间是50秒。
default=TL3.4
other=dev/hda1
#表示如果在上述的时间内没有输入,缺省的启动系统是TL3.4,即TurboLinux 3.4.0
table=dev/had
#表示如果在LILO提示用户输入启动系统时,用户按了&Tab&键,各个系统将以label的内容显示出来,供用户选择。
image=/mnt/tl3.4/boot/vmlinuz
label=TL3.4
root=/dev/hda3
TurboLinux的启动文件,/mnt/tl3.4/boot/vmlinuz被确定,根文件系统在/dev/hda3,根文件系统是只读方式的。
image=/mnt/rh5.2/boot/vmlinuz-2.0.36-0.7
label=RH5.2
root=/dev/hda4
RedHat的启动文件,/mnt/rh5.2/boot/vmlinuz-2.0,36-0.7被确定,根文件系统在/dev/hda4,根文件系统可读写。
6 LINUX引导盘创建
6.1 在MS Windows 9x/2000下创建引导盘
可以在MS Windows 9x/2000下创建引导盘,步骤如下:
假定当前的CD-ROM驱动器是D:先将Red hat cd-rom盘放在驱动器内,在MS-DOS shell窗口中运行以下命令:
d:/dosutils/rawrite
2. rawrite实用程序将会立即显示如下提示信息:
Enter disk image source file name:
Please insert a formmated diskette into drive A: and press the enter key
3.输入 images\boot.img 作为镜像源文件,现在 rawirte 会立即显示如下提示信息:
Enter target diskette drive:
4. 输入适当的驱动器名
5.将格式化的空盘插入到软驱中,按回车键继续
6.rawrite实用程序将把boot.img镜像到磁盘中,操作完毕;
6.2 在LINUX下创建引导盘
引用:步骤:
根据常规装上REDHAT CD-ROM盘,这里假定已经把系统装在/mnt/cdrom目录下。现在应把当前目录更改成/mnt/cdrom/images,以便存放引导镜像文件;
假定软驱是/dev/fd0,使用的是1.44 M软盘,运行以下命令:
dd if=boot.img of=/dev/fd0 bs=1440k
这样便创建了所需的引导盘。还可以创建辅助镜像软盘,只需把上面命令中的if=boot.img该成if=supp.img语句即可。
mesg命令设定是否允许其他用户用write命令给自己发送信息。如果允许别人给自己发送信息,输入命令:
否则,输入:
对于超级用户,系统的默认值为 n;而对于一般用户系统的默认值为y。 如果mesg后不带任何参数,则显示当前的状态是y还是n.。
   sync命令是在关闭Linux系统时使用的。 用户需要注意的是,不能用简单的关闭电源的方法关闭系统,因为Linux象其他Unix系
统一样,在内存中缓存了许多数据,在关闭系统时需要进行内存数据与硬盘数据的同步校验,保证硬盘数据在关闭系统时是最新的,只有这样才能确保数据不会丢
失。一般正常的关闭系统的过程是自动进行这些工作的,在系统运行过程中也会定时做这些工作,不需要用户干预。 sync命令是强制把内存中的数据写回硬
盘,以免数据的丢失。用户可以在需要的时候使用此命令。该命令的一般格式为:
free命令的功能是查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区。
该命令的一般格式为: free [-b | -k | -m] 命令中各选项的含义如下:
-b 以字节为单位显示。
-k 以K字节为单位显示。
-m 以兆字节为单位显示。
date命令的功能是显示和设置系统日期和时间。
该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)
date 设置时间格式
命令中各选项的含义分别为:
-d datestr, --date datestr 显示由datestr描述的日期
-s datestr, --set datestr 设置datestr 描述的日期
-u, --universal 显示或设置通用时间
% H 小时(00..23)
% I 小时(01..12)
% k 小时(0..23)
% l 小时(1..12)
% M 分(00..59)
% p 显示出AM或PM
% r 时间(hh:mm:ss AM或PM),12小时
% s 从日00:00:00到目前经历的秒数
% S 秒(00..59)
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
% Z 时区 日期域
% a 星期几的简称( Sun..Sat)
% A 星期几的全称( Sunday..Saturday)
% b 月的简称(Jan..Dec)
% B 月的全称(January..December)
% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
% d 一个月的第几天(01..31)
% D 日期(mm/dd/yy)
% h 和%b选项相同
% j 一年的第几天(001..366)
% m 月(01..12)
% w 一个星期的第几天(0代表星期天)
% W 一年的第几个星期(00..53,星期一为第一天)
% x 显示日期的格式(mm/dd/yy)
% y 年的最后两个数字( 1999则是99)
% Y 年(例如:等)
注意:只有超级用户才有权限使用date命令设置时间,一般用户只能使用date命令显示时间。
浏览: 113589 次
来自: 成都
分享国产原型图工具mockplus,简单,快捷
请问LZ,比如我现在接到一个需求,然后新建了一个任务,那请问这 ...
CoderDream 写道1、创建maven项目mvn arc ...
1、创建maven项目mvn archetype:create ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 var log wtmp 的文章

 

随机推荐