当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪教你分析SELinux日志以排除SELinux疑难的方法      在Linux中,SELinux 可以会拒绝某个文件、进程或资源被访问,产生这种情况的原因,无外乎以下几个方面: 1,一个被错误标签的文件 2,一个进程在错误的 SELinux 安全性脉络下运行 3,政策.........
    ▪解析:Linux之管道与重定向      一、重定向输出 可以通过操作符>将标准输出1和标准错误输出2重定向到某个文件,比如:   代码示例: #ls -l > lsoutput.txt 以上命令将标准输出重定向到文件lsoutput.txt中。 当然,也可以将.........
    ▪解析linux中raid和lvm(尚观学习笔记)      raid(磁盘阵列)分为软、硬二种: 软raid 硬raid raid 0    1    5    10 raid0 : 优点:读写速度加快 缺点:不安全 raid1: 优点:读取速度快,安全 缺点:写入速度慢 raid10:radi1和raid0的集合 rai.........

[1]教你分析SELinux日志以排除SELinux疑难的方法
    来源: 互联网  发布时间: 2013-12-24

在Linux中,SELinux 可以会拒绝某个文件、进程或资源被访问,产生这种情况的原因,无外乎以下几个方面:
1,一个被错误标签的文件
2,一个进程在错误的 SELinux 安全性脉络下运行
3,政策出错。某个进程要访问一个在编写政策时意料不到的文件,并产生错误信息
4,一个入侵的企图。
前三条我们可以处理,第四条不在计划内。

安装setroubleshoot 组件。
在centos 5中安装:
 

代码示例:
yum install setroubleshoot

(https://fedorahosted.org/setroubleshoot)

在出现问题时,分析SELinux的日志文件,是个好习惯。
SELinux 缺省会通过 Linux 审计系统(auditd)将日志写在 /var/log/audit/audit.log 内,而这项务服缺省为启用的。
假若 auditd 并未运行,信息将会被写进 /var/log/messages。
SELinux 的日志都被标签有 AVC 这个关键字,方便它们从其它信息中过滤出来。

由 CentOS 5 起,可以用 SELinux 排除疑难工具协助你分析日志档,将它们转换为供人阅读的格式。

该工具包含一个以可读格式显示信息及解决方案的图像界面、一个桌面通报图示、与及一个长驻进程(setroubleshootd),它负责查阅新的 SELinux AVC 警告并传送至通报图示(不运行 X 服务器的话可设置以电邮通报)。SELinux 排除疑难工具是由 setroubleshoot 组件所提供,并缺省会被安装。
该工具可以从「系统」选单或命令行引导:
 

代码示例:
sealert -b

未运行 X 服务器朋友,可以通过命令行产生易于阅读的报告文档,如下:
 

代码示例:
sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt

    
[2]解析:Linux之管道与重定向
    来源: 互联网  发布时间: 2013-12-24

一、重定向输出
可以通过操作符>将标准输出1和标准错误输出2重定向到某个文件,比如:
 

代码示例:
#ls -l > lsoutput.txt

以上命令将标准输出重定向到文件lsoutput.txt中。

当然,也可以将标准文件描述符以外的文件描述符进行重定向,这种情况很少见。
默认情况下,如果lsoutput.txt文件已经存在,则它的内容将被覆盖,如果想将输出内容附加到一个文件中,则可以使用>>操作符进行输出重定向,比如:

代码示例:
#ls -l >> lsoutput.txt

上面命令将输出附加到指定文件的尾部。

有时会用重定向输出将命令产生的错误重定向输出到某个文件以屏蔽屏幕输出。
以下将标准输出和错误输出分别重定向到不同的文件中:
 

代码示例:
#kill -HUP 1234 > killout.txt 2>killerr.txt

如果想把两组输出都重定向到一个文件中,可以使用>&操作符来结合两个输出,比如:
 

代码示例:
#kill -l 1234 >killouterr.txt 2>&1

这条命令将标准输出和标准错误输出都重定向到同一个文件中。
这里要注意下操作符出现的顺序,这条命令的含义是“将标准输出重定向到文件killouterr.txt,然后将标准错误输出重定向到与标准输出相同的地方。
”如果顺序有误,重定向将不会按照预期执行。
还有一种将标准输出或标准错误输出丢弃的好办法,比如:
 

代码示例:
#kill -l 1234 >/dev/null 2>&1

回收站/dev/null就像黑洞一样,任何东西进入都是有去无回。

二、重定向输入
还可以重定向标准输入,比如:
 

代码示例:
#more < killout.txt

以上命令只为教学而用,因为more本来也可以接受文件名为参数。

三、管道
可以用管道操作符|来连接进程。

Linux与MS-DOS不同,在linux系统中通过管道连接的进程可以同时运行,并且随着数据流在它们之间的传递可以自动地进行协调。
下面以使用sort命令对ps命令的输出进行排序来说明管道的意义。

不用管道的情况下,需要分几个步骤来实现:
 

代码示例:
#ps > psout.txt
#sort psout.txt > pssort.out

用管道的话,就变得简单多了,比如:
 

代码示例:
#ps | sort > pssort.out

如果想在屏幕上分页显示输出结果,可以再连接第三个进程more,将它们都放在同一个命令行上:
 

代码示例:
#ps | sort | more

允许连接的进程数目是没有限制的。假设我们想看看所有系统中运行的进程的名字,但不包括shell本身,可以如此:
 

代码示例:
#ps -xo comm | sort | uniq | grep -v sh | more

这个命令首先按字母顺序排序ps命令的输出,再用uniq命令去除重复的内容,然后用grep -v sh命令删除名为sh的进程,最终将结果分页显示在屏幕上。

与使用一系列分离的命令并且每个命令都带有自己的临时文件相比,这是一个更精巧的解决方案。但这里有一点需要引起注意,如果你有一系列的命令需要执行,相应的输出文件是在这一组命令被创建的同时立刻被创建或写入的,所以绝不要在命令流中重复使用相同的文件名。

尝试执行如下命令:
 

代码示例:
#cat mydata.txt | sort | uniq | > mydata.txt

将得到一个空文件,因为在读取文件mydata.txt之前就已覆盖了此文件的内容。

有关linux中重定向与管道的内容,就介绍这些吧,希望对大家有所帮助。

您可能感兴趣的文章:
Linux重定向实例详解
深入linux中重定向及管道详解
深入linux上shell重定向详解>>
Linux中重定向命令行的方法总结
shell i/o常用重定向方法详解
深入理解Linux重定向的使用
linux文件描述符与输入输出重定向
有关I/O重定向的详细教程


    
[3]解析linux中raid和lvm(尚观学习笔记)
    来源: 互联网  发布时间: 2013-12-24

raid(磁盘阵列)分为软、硬二种:
软raid
硬raid

raid 0    1    5    10
raid0 :
优点:读写速度加快
缺点:不安全

raid1:
优点:读取速度快,安全
缺点:写入速度慢

raid10:radi1和raid0的集合

raid5:
优点和缺点介于0和1之间

准备4个新分区:
 

代码示例:
[root@station230 ~]# mdadm  --create  /dev/md0  --level=5 --raid-devices=3 --spare-devices=1  /dev/sda{7,8,9,10}
 

或者:
 

代码示例:
[root@station230 md0]# mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sda{7,8,9,10}
[root@station230 md0]# mdadm -D /dev/md0
[root@station230 md0]# mdadm -Ds
[root@station230 md0]# mkfs.ext3 /dev/md0
[root@station230 ~]# mkdir /mnt/md0
[root@station230 ~]# mount /dev/md0  /mnt/md0
[root@station230 ~]# cd /mnt/md0
[root@station230 md0]# ls
lost+found

主设备号
次设备号

创建设备文件:
 

代码示例:

mknod 

/proc/devices

[root@station230 dev]# mdadm -Ds  > /etc/mdadm.conf
[root@station230 dev]# echo 'mount /dev/md0 /mnt/md0'  >>  /etc/rc.local
[root@station230 dev]# vim /etc/fstab
/dev/md0      /mnt/md0     ext3    defaults      0     0

[root@station230 dev]# mdadm -D /dev/md0
 Number   Major   Minor   RaidDevice State
       0       8        7        0      active sync   /dev/sda7
       1       8       10        1      active sync   /dev/sda10
       2       8        9        2      active sync   /dev/sda9
       3       8        8        -      faulty spare   /dev/sda8

[root@station230 dev]# mdadm -f /dev/md0  /dev/sda8
mdadm: set /dev/sda8 faulty in /dev/md0

[root@station230 dev]# mdadm -D /dev/md0
 Number   Major   Minor   RaidDevice State
       0       8        7        0      active sync   /dev/sda7
       1       8       10        1      active sync   /dev/sda10
       2       8        9        2      active sync   /dev/sda9
       3       8        8        -      faulty spare   /dev/sda8

[root@station230 dev]# mdadm -r /dev/md0 /dev/sda8
mdadm: hot removed /dev/sda8
[root@station230 dev]# mdadm -a /dev/md0 /dev/sda8
mdadm: added /dev/sda8

lvm(逻辑卷)

创建4个分区:
创建Pv:
 

代码示例:
[root@station230 ~]# pvcreate /dev/sda{11,12,13,14}
  Physical volume "/dev/sda11" successfully created
  Physical volume "/dev/sda12" successfully created
  Physical volume "/dev/sda13" successfully created
  Physical volume "/dev/sda14" successfully created

创建并加入卷组:
 

代码示例:
[root@station230 ~]# vgcreate vg0 /dev/sda{11,12,13}
  Volume group "vg0" successfully created

创建lv:
 

代码示例:
[root@station230 dev]# lvcreate -L 70M -n lv0  vg0
  Rounding up size to full physical extent 72.00 MB
  Logical volume "lv0" created

创建文件系统:
 

代码示例:

[root@station230 dev]# mkdir /mnt/lv0
[root@station230 dev]# mkfs.ext3 /dev/vg0/lv0

[root@station230 dev]# mount /dev/vg0/lv0 /mnt/lv0
[root@station230 dev]# cd /mnt/lv0
[root@station230 lv0]# ls
lost+found

查看:
 

代码示例:

[root@station230 lv0]# pvdisplay
[root@station230 lv0]# pvscan

[root@station230 lv0]# vgdisplay
[root@station230 lv0]# vgscan

[root@station230 lv0]# lvdisplay
[root@station230 lv0]# lvscan

扩容:
扩大vg:
 

代码示例:
[root@station230 lv0]# vgextend vg0 /dev/sda14
  Volume group "vg0" successfully extended
 

扩大lv:
 

代码示例:
[root@station230 lv0]# lvextend -L 100M /dev/vg0/lv0
  Extending logical volume lv0 to 100.00 MB
  Logical volume lv0 successfully resized
 

或者:
 

代码示例:

[root@station230 lv0]# lvextend -L +30M /dev/vg0/lv0

[root@station230 lv0]# resize2fs /dev/vg0/lv0 100M
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg0/lv0 is mounted on /mnt/lv0; on-line resizing required
Performing an on-line resize of /dev/vg0/lv0 to 102400 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 102400 blocks long.


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3