标签:linux
linux运维故障处理:http://book.51cto.com/art/201405/438561.htm
RHEL 7.0系统安装图解:http://os.51cto.com/art/201406/442839.htm
红帽子官方手册:https://access.redhat.com/documentation/zh-CN/
一、linux中文显示乱码解决办法:
vi /etc/sysconfig/i18n
将内容改为
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
或:
LANG="zh_CN.gb2312"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_CN.GB2312:zh_CN:zh:zh_CN.gbk:zh_CN:zh:zh_HK.UTF-8:zh_HK:zh:zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
二、tcpdump简单使用方法:
tcpdump -i eth0
tcpdump host 10.105.6.236
tcpdump host 10.109.209.73 and 10.105.6.236 -w shenfei.cap
B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用 括号时,一定要
#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
#tcpdump ‘tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)‘ 抓端口
#tcpdump ‘gateway snup and (port ftp or ftp-data)‘
三、密码策略配置文件:/etc/login.defs
tcprstat下载
查看Linux文件大小命令du -h * |sort -rn |head (查看当前目录及以下的文件夹大小,若只查当前目录大小加上-s,查看当前目录下所有文件及文件夹大小的则加上-a)
>> /dev/null 2>&1 把所有输出输出到/dev/null中,把标准错误(2)输出输出到标准(1)输出同样的地方/dev/null
设置超时时间:在/etc/profile里加一句TMOUT=60
四、LINUX下建立静态IP/MAC捆绑的方法是:建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下:
192.168.2.32 08:00:4E:B0:24:47
然后再/etc/rc.d/rc.local最后添加: arp -f /etc/ethers即可
设置Linux时间:date -s ‘20140107 14:00:00‘,然后hwclock --systohc系统与硬件时钟同步
五、设置网卡工作在混杂模式下:ifconfig eth0 promisc 设置混杂;ifconfig eth0 -promisc 取消混杂
snmpwalk -v 2c -c public 192.168.10.180 .1.3.6.1.4.1.2021.11.9.0
squashfs文件系统,实现与windows一样的磁盘压缩功能
./run.sh &后台运行,运行完后使用nohup ./run.sh & 再exit。。。保险点。。。
setup配置防火墙1234:udp 如果要指定多个端口,请用逗号格开。
六、jobs
查看当前有多少在后台运行的命令
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息;
七、fg
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
八、bg
将一个在后台暂停的命令,变成继续执行 (在后台执行)
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
将任务转移到后台运行:
先ctrl + z;再bg,这样进程就被移到后台运行,终端还能继续接受命令。
九、{Linux下查看硬件信息:
1.查看机器所有硬件信息:
dmidecode |more
dmesg |more
这2个命令出来的信息都非常多,所以建议后面使用"|more"便于查看
2.查看CPU信息
方法一:
Linux下CPU相关的参数保存在 /proc/cpuinfo 文件里
cat /proc/cpuinfo |more
方法二:
采用命令 dmesg | grep CPU 可以查看到相关CPU的启动信息
查看CPU的位数:
getconf LONG_BIT
3.查看Mem信息
cat /proc/meminfo |more (注意输出信息的最后一行:MachineMem: 41932272 kB)
free -m
top
4.查看磁盘信息
方法一:
fdisk -l 可以看到系统上的磁盘(包括U盘)的分区以及大小相关信息。
方法二:
直接查看
cat /proc/partitions
5.查看网卡信息
方法一:
ethtool eth0 采用此命令可以查看到网卡相关的技术指标
(不一定所有网卡都支持此命令)
ethtool -i eth1 加上 -i 参数查看网卡驱动
可以尝试其它参数查看网卡相关技术参数
方法二:
也可以通过dmesg | grep eth0 等看到网卡名字(厂家)等信息
通过查看 /etc/sysconfig/network-scripts/ifcfg-eth0 可以看到当前的网卡配置包括IP、网关地址等信息。
当然也可以通过ifconfig命令查看。
6.如何查看主板信息?
lspci
7.如何挂载ISO文件
mount -o loop *.iso mount_point
8.如何查看光盘相关信息
方法一:
插入CD光碟后,在本人的RHEL5系统里,光碟文件是 /dev/cdrom,
因此只需 mount /dev/cdrom mount_point 即可。
[root@miix tmp]# mount /dev/cdrom mount_point
mount: block device /dev/cdrom is write-protected, mounting read-only
其实仔细看一下,光驱的设备文件是 hdc
[root@miix tmp]# ls -l /dev/cdrom*
lrwxrwxrwx 1 root root 3 01-08 08:54 /dev/cdrom -> hdc
lrwxrwxrwx 1 root root 3 01-08 08:54 /dev/cdrom-hdc -> hdc
因此我们也可以这样 mount /dev/hdc mount_point
如果光驱里没放入有效光盘,则报错:
[root@miix tmp]# mount /dev/hdc mount_point
mount: 找不到介质
9.如何查看USB设备相关
方法一:
其实通过 fdisk -l 命令可以查看到接入的U盘信息,本人的U盘信息如下:
Disk /dev/sda: 2012 MB, 2012217344 bytes
16 heads, 32 sectors/track, 7676 cylinders
Units = cylinders of 512 * 512 = 262144 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 16 7676 1961024 b W95 FAT32
U盘的设备文件是 /dev/sda,2G大小,FAT32格式。
如果用户登陆的不是Linux图形界面,U盘不会自动挂载上来。
此时可以通过手工挂载(mount):
mount /dev/sda1 mount_point
以上命令将U盘挂载到当前目录的 mount_point 目录,注意挂的是 sda1 不是 sda。
卸载命令是 umount mount_point
Linux默认没有自带支持NTFS格式磁盘的驱动,但对FAT32支持良好,挂载的时候一般不需要 -t vfat 参数 。
如果支持ntfs,对ntfs格式的磁盘分区应使用 -t ntfs 参数。
如果出现乱码情况,可以考虑用 -o iocharset=字符集 参数。
可以通过 lsusb 命令查看 USB 设备信息哦:
[root@miix tmp]# lsusb
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 004 Device 002: ID 0951:1613 Kingston Technology
Bus 004 Device 001: ID 0000:0000
}
bc计算器
十、【iptables】 http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html
(1)查看本机关于IPTABLES的设置情况
[root@tp ~]# iptables -L -n 或 /etc/init.d/iptables status 更详细
(2)清除所有配置
[root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则
[root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则
[root@tp ~]# iptables -Z 将数据包计数器归零
(3)设定预设规则
[root@tp ~]# iptables -P(这是大P) INPUT DROP
[root@tp ~]# iptables -P OUTPUT ACCEPT
[root@tp ~]# iptables -P FORWARD DROP
(4)举例配置
[root@tp ~]# iptables -A INPUT -s 192.168.0.3 -p(这是小p) tcp --dport 22 -j ACCEPT
关于nat的prerouting与postrouting的文章:http://man.chinaunix.net/network/iptables-tutorial-cn-1.1.19.html#NATTABLE
执行顺序为:源地址发送数据--> {PREROUTING-->路由规则-->POSTROUTING} -->目的地址接收到数据
(5)最后
[root@tp ~]#?etc/rc.d/init.d/iptables save或 service iptables save
[root@tp ~]# service iptables restart
十一、《源码编译openssh并加入自启动以及chkconfig中,其余源码可参考!》:
ln -s 源文件 目标文件
chmod rwxrwxrwx r=4,w=2,x=1
编译安装 ./configure make make install---不解释
安装完要将原码中的redhat的sshd.init拷到/etc/init.d中(其实都是shell脚本),修改里面的路径(使用vim命令),就可以chkconfig和service了,软链接到rc3.d里面就行了(可提前看曾经的sshd启动级别S55sshd)》
linux实现公钥免密码登陆:
将生成的公钥导入对方主目录下的.ssh/authorized_keys中,再vim sshd_config禁止密码和空密码登陆和允许公钥登陆!最后service sshd restart就行了!
其他:设置authorized_keys权限 chmod 600 authorized_keys;设置.ssh目录权限 chmod 700 -R .ssh
ssh-keygen -t (rsa|dsa) -b (bits) 【-i Convert IETF SECSH to OpenSSH key file|-e Convert OpenSSH to IETF SECSH key file) -m (选择格式) -f (选择公或私钥文件)】
十二、LINUX安装硬件驱动(以安装网卡为例):
1、src.rpm方式安装,rpm -ivh bnx2.src.rpm 后cd /usr/src/redhat/SPECS,执行rpmbuild -bb bnx2.spec,默认安装到usr/src/redhat/RPMS/i386目录下【注:但可以指定安装到i686下,如rpmbuild -bb --target=i686 bnx2.spec即可】,再然后cd /usr/src/redhat/RPMS/i386里面执行rpm -ivh bnx2.rpm就行了,安装后的ko驱动模块在/lib/modules//extra/bnx2.ko再拷贝到/lib/modules//drivers/net就可以了,最后等待insmod bnx2.ko或mobprobe bnx2就行了!!!若想开机加载则用vim /etc/modprobe.conf里面alias【在最新版的linux中请在/etc/modprobe.d/dist.conf里面加alias,在用RPM和src rpm安装驱动包前先确定是否有kernel-source、kernel、kernel-devel、kernel-headers、gcc和make这几个软件包,应该是废话!】
2、建立临时/temp文件夹,交把源码包进行解压,,解压后进入相关目录,执行make clean modules后再make install,标准驱动程序会将驱动安装到相关文件中,但有的不行,则自己手动移动;检查模块间依赖关系:depmod -a然后加载insmod *.ko文件,最后lsmod | grep *查看是否加载成功,最后开机启动加载就用alias在modprobe.conf里面!
单网卡绑定多个IP:redhat5系统在建立ifcfg-eth0:1类似的来识别;建议在6系列LINXU中,用system-config-network做,直接修改ifcfg文件容易乱,这点就没5系统好用!!!!定义alias时最好在dist.conf做,不用单独建modprobe.conf了!
YUM安装本地源配置:在/etc/yum.repos.d里面修改centos-base.repo文件,将里面的baseurl修改为baseurl=file:///mnt/cdrom;因为yum安装时自动解决包依赖关系,删除时也删除相关的依赖包,所以建议用rpm进行卸载;yum install 软件包名;yum remove 软件包名;yum check-update(检查可更新的RPM包);yum update(更新所有软件包,或指定的);yum upgrade(大规模版本升级,与update不一样的是陈旧的包也会升级);yum info(列出资源库所有可以安装或更新的RPM包信息,也可以列出指定的);yum search 软件包名(搜索特定包的详细信息);rpm --import URL导入非官方库的GPG
十三、【安全配置建议】
禁止ping:可以一定程度减小扫描 编辑sysctl.conf后,增加一行net.ipv4.icmp_echo_ignore_all = 1就行了,然后sysctl -p就OK了
限制ctl+alt+del组合重启应用:不安全,怕误操作编辑/etc/inittab,在ca::ctraltdel:/sbin/shutdown -t3 -r now前加#,然后执行命令telinit q即可,新版的在/etc/init/control-alt-delete.conf
限制shell历史命令大小:/etc/profile 里面HISTSIZE=30就行了,然后source /etc/profile就行了
通过使用iptables骗过黑客(就是让黑客不觉得有防火墙保护):iptables -A INPUT -p tcp --dport 22 -j REJECT --reject-with tcp-reset( 语法不懂就man iptables呀,搜索关键字)
【备份】linux没有像windows那样的ghost备份简单,只需备份必要的配置及数据即可;系统级备份:主要备份/etc /home /boot /root几个即可;用户级配置文件多在/usr/local /var/www目录;不需要备份的目录有/dev /proc /mnt /tmp
磁带备份(直接对磁带设备进行操作):mt -f /dev/st0 rewind(将磁带卷至起始位置);mt -f /dev/st0 erase(擦除掉磁带内容);mt -f /dev/st0 offline(出带);通过tar列出磁带上的目录与文件:tar -tvf /dev/st0 [需要查看的文件];从头开始写数据:tar -cvf /dev/st0 文件;继续写数据:tar -rvf /dev/st0 文件;tar -xvf /dev/st0 [磁带上的文件] 默认恢复到本地当前目录下
十四、【rsync一种用法是指将服务端的同步到客户端(下一),另一种是客户端的实时动态同步到服务端(多用于inotify+rsync,下二)
远程备份一般用rsync,配置为:服务器上修改rsyncd.conf具体如何配,请man rsyncd.conf,然后rsync --daemon --config=FILE;客户端rsync -avzP 用户名(非Linux用户名)@服务器IP::模块名 --password-file=FILE /LOCALFILEPATH (注意在服务器端的密码文件格式为用户名:密码,而在本地文件只有密码,前面不要加其他,密码文件必须都是600权限。妈的,还是度娘查看了!),具体见:http://book.51cto.com/art/201111/300930.htm;
实时同步(即客户端的变化实时同步给rsync服务端,服务器配置要read only=false,并且同步的权限要放开)用rsync+inotify:http://book.51cto.com/art/201111/300936.htm,如果备份在10台以上的,可以建议用共享存储,没钱的可以使用:Heartbeat+DRBD+NFS方案】相关脚本已放到硬盘里面了
十五、LINUX 集群分为三类:HA cluster(heartbeat)、LB cluster(LVS)、HPC cluster,当然还有存储型,注意四者区别,其余配置看书!
1、HA集群直接用RHCS里面的luci\ricci就行了,当然还要安装cman\rgmanager,如下:其余配置看书:
RHCS 的HA,个人这样理解:厂商建议使用三台机器,一台安装LUCI当管理,另外两台装ricci当客户端,但是很浪费硬件资源!在系统不崩溃的情况下HA是没有问题的,但是如果主设备宕机心跳信息发不过支,肿么办?这个时候就靠fence强制宕机的主设备关闭电源(开启电源是不是要跑机房呀,不得而知)从而将业务切到备机上面,除非100%的信心保证主设备不会宕机,否则建议使用fence,关于fence有内置的,也有外部的,一般情况为了省钱就用内置的,内置的要求主板网卡支持ipmi特性(两个心跳网卡直接交叉线相连就行了),在BIOS里面修改ipmi的IP地址(和私有心跳一个网段,hosts文件最好写成私有心跳的地址就行了,最好不要用业务IP),内置的不要拔电源线,否则切不过去,因为内置ipmi没电了,备机一直收不到回来的信号也不敢切,怕出现split-brain现象,现在主机都双电源设计了,就不用蛋疼了;外置的还要购买种种设置,反正蛮贵的,不划算,外置的话,可以拔掉主设备的电源,照样切,因为fence设备有电,能收到指令并且能返回指令!
如果主机未宕机,只是想手动切换就直接用luci指定节点,按下leave cluster后再加入,记到在failover里面选起no failback;做实验时为什么fence加了等于白加,没效果呢,应该是fence不行,我记得查看过vmware的文档,只在esx上支持fence,连esxi上都不支持!
Conga管理工具(luci/ricci)、cman和rgmanager集群工具安装配置
1.安装luci工具,在Manager上执行
#yum install -y luci
#/etc/init.d/luci start
#chkconfig luci on
2.安装rgmanager(包含了ricci/cman),在agent1和agent2上执行
#yum install rgmanager -y 会自动安装ricci、cman等包
#chkconfig ricci on ; /etc/init.d/ricci start
#chkconfig NetworkManager off ; /etc/init.d/NetworkManager stop
#chkconfig cman on ; chkconfig rgmanager on----个人建议开机不要设,以免不知道谁先启动,最好手工启动
启动有先后顺序,先启动cman再启动rgmanager,关闭则相反。
#/etc/init.d/cman start ; /etc/init.d/rgmanager start
每个节点的ricci需要设置密码,实验使用的密码是shenfei5463
http://www.kankanews.com/ICkengine/archives/103681.shtml
关于HA中的failover故障倒换域:
**添加Failover Domains 故障转移域:
Prioritized:优先级,故障转移时选择优先级高的。
Restricted:服务只运行在指定的节点上。
No Failback:当故障节点又正常的时候,不必把服务切换回去。
HA中在Resource域里面,已经有标准的资源类别,若不够就自己加脚本,脚本要满足LSB规范的init脚本!
在Services里面策略:Restart-如果发现资源出现异常,则先在本地尝试重启服务,如果重启失败则执行Relocate操作;Relocate-停止当前节点中与本服务相关的所有资源,由另一台服务器进行服务及资源的接管;Disable-在所有节点中停止服务,不进行任何操作。
参考信息:http://www.linuxidc.com/Linux/2012-07/64141p2.htm
特别注意:当在services group里面重启时发生报错(通常为118状态错误,用clustat -l发现一直在resolving),有两处要改(迷信一下),在resource里面的IP ADDRS改成XXXX/24,不要弄成255.255.255.0之类的,有bug;其次更重要的原因是应该先service cman start后再service rgmanager start的,因为我配了chkconfig了,可能系统在启动时先启动了rgmanager了,擦!
十六、LINUX磁盘配额资料 http://blog.163.com/yueliang_myl/blog/static/1290385222010443204375/
关于硬件raid,建议看raid卡原厂的readme,不建议使用软raid,维护麻烦!
LVM逻辑卷管理:http://os.51cto.com/art/201406/443028.htm
说明很详细,看第6部分即可!
很有用但鲜有人知的 Linux 命令:http://os.51cto.com/art/201310/414075.htm
十七、DISPLAY变量用法:
在当前用户下的.bash_profile下设置
DISPLAY=192.168.0.20:0.0
export DISPLAY
其中192.168.0.20:0.0 的.0主机为192.168.0.20,显示器号0,屏幕号0;
十八、vim简单使用命令
替换:s/vivian/sky/ 替换当前行第一个 vivian 为 sky;s/vivian/sky/g 替换当前行所有 vivian 为 sky;n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky,后面加g的话,就是全部!
增加:%s/^/要增加的内容,每行行首增加;%s/$/要插入的字符串,每行行尾增加!2,50 s/^/\/\//g 在2~50行首添加//号注释;
跳到文件第一行用g,跳到文件最后一行用G,想跳到25行,就用25gg
其他用不到的就不用学了,没意思!
想将某一文件中的551-654行的行首加上#,用:sed -i ‘551,654s/^/#/‘ /etc/snort/snort.conf
十九、网络质量监控工具:http://os.51cto.com/art/201403/431950.htm 进程带宽占用监控程序:Nethogs
二十、U盘装Linux遇到问题汇总
1、备份MBR主引导记录(512字节) dd if=/dev/sda of=/tmp/MBR.back bs=512(不带单位的话就是byte) count=1;反过来恢复使用dd if=/tmp/MBR.back of=/dev/sda即可!
2、linux分区总是硬件编号变化,例如sda变成sdb,这时需要用tune2fs -l sda1看到UUID记录下来,然后编辑/etc/fstab将设备改成UUID=*就行了;最新系统不用操作这一点
3、Linux装完系统启动提示“attempting boot from hard disk(C)”时,原因是grub和mbr没装完,用修复模式进入后chroot /mnt/sysimage,用grub弄【1、安装grub到boot所有分区,例如/dev/sda1,惠普的是grub-install /dev/ccisss/c0d0p1;2、安装mbr:grub>root (hd 注:TAB键看看有多少块磁盘,grub>root (hd1, 注:TAB键看看有多个分区,确定这就是系统所在的磁盘以及boot分区,grub>root (hd1,0) 注:/boot所在的分区
grub>setup (hd1) 注:把GRUB写到MBR上】具体详细教程:http://zhiwu88.blog.hexun.com/74298211_d.html,关于grub硬盘分区编号问题可百度!
4、如果出现centos倒计时后进不到系统,则在倒计时输入e编辑,更改引导盘boot所在分区,例:root (hd0,0),kernel后删除UUID参数后所有,再加上enforcing=0 selinux=0就行了,回车按b启动,如果出现Kernel Panic -- not syncing: attempted to kill init(原因就是磁盘有问题),就重复以上步骤不用加enforcing和selinux的,再进,会提示你fsck检查,你就所有盘最好用命令修复一下即可!最后进入系统之后记得修改/etc/grub.conf里面的内容
共享存储连接方式有iscsi和FCOE两种主流方式
二十一、windows下的\r\n变成Linux的\n,用 sed -i ‘s/\r$//’ 跟文件,linux shell编程参数解释如下:http://hi.baidu.com/ipvsadm/item/489d9e16460195ddbe9042ee
二十二、apache+tomcat配置+mod_jk.so连接器
1、安装apache时,./configure --enable-modules=most --enable-mods-shared=all --enable-so --enable-so --with-apr-util=PATH --with-opr=PATH --with-PCRE=PATH,可以届时./configure --help一下看,完成apache安装后,要用service命令启动的话,需要把filepid,httpd.conf,httpd三个绝对路径改一下!
2、./httpd -l若看到event.c时,说明apache 默认运行在event模式,而不是以前的prefork和worker模式,apache真正要配置的文件有httpd.conf和extra目录下的额外扩展配置!在httpd.conf里面若要使用extra里面的配置,就把相关的loadmodule和include前面#去掉
二十三、文件及文件夹权限设置
传统的chmod不能细粒度满足指定用户权限要求,setfacl增加文件权限:【setfacl进行权限查看,语法为setfacl -R -m u:用户名:rw- 目录或文件】
-R是递归执行的意思,可以不要,-m增加,u用户,USER指定用户,rw-就是权限,FILE就是文件或目录;取消某用户对该文件的所有权限:【 setfacl -x u:用户名 文件或目录】;删除所有的用户权限规则,恢复默认:【setfacl -b 目录或文件】;
但是使用setfacl和getfacl前,必须开启文件系统的ACL权限:1)修改mount选项:mount -o remount,acl /dev/vda3 /mnt/acltest 后然后开机自动挂载:vim /etc/fstab /dev/vda3 /mnt/acltest ext4 defaults,acl 0 0 或者先修改fstab后再remount都行!
二十四、关于linux /etc/fstab最后两列的说明:
第5行此处为1时,表示要将整个备分,现在很少用了,除了/和/boot,都是0;第6行,/必须是1,其他要依次检查的话就为2,3,4....不想检查就写0
二十五、ext3数据恢复,Ext3grep工具,教程:http://blog.chinaunix.net/uid-25544300-id-3278608.html
恢复时先卸载掉相关挂载,防止新数据写入不能恢复----> 查询可恢复的数据 ext3grep /dev/sdb1 --ls --inode 2 ----->ext3grep --restore-inode或--restore--file恢复单个文件,也可以--restore-all恢复所有文件,恢复后将在当前路径下生成RESTORED_FILES文件夹,再将文件移动到以前的目录下即可(提前挂载)
如果umount时出现busy时,可以用‘fuser -v -u 文件名’可以看到谁在用这个文件并显示该PID,也可以直接fuser -k 文件名,可以杀死使用这个文件的进程!
当然也使用lsof命令,lsof 文件名 可以看到文件被哪个进程所使用;lsof -c 进程名(可以使用进程名称) 可以看到进程名打开的文件;lsof -g gid 可以看到进程组打开的文件情况;lsof -i 监听指定协议、端口、主机信息显示符合条件的进程信息,如lsof -i tcp:25、lsof -i udp@127.0.0.1:53,更多使用lsof的实用案例见http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html
二十六、swap创建与删除
1、swap必须由dd命令创建:dd if=/dev/zero of=filepath bs=1024k count=60 创建了60M文件
2、把文件变为swap,mkswap filepath
3、激活swap分区:swapon filepath;移除swap分区:swapoff filepath
4、开机加载swap:fstab里面,/data/swapfile one swap sw 0 0
二十七、系统性能分析工具
CPU性能评估:用vmstat命令,标准:r值不得大于CPU个数;us+sy列参考值为80%,大于说明CPU资源不足;idle值为空闲百分比,理论越大越好!
磁盘性能评估:用vmstat命令,bi+bo参考值为1000,大于的话且wa值(参考值为20%)较大,则磁盘性能待提高!
内存性能评估:也可用vmstat命令,主要关注swpd、si、so行(通常si\so长期大于0就认为内存不够用)
二十八、搭建开源入侵检测系统Snort,并实现与防火墙联动
http://www.freebuf.com/articles/system/37507.html
二十九、命令行启动virtulbox:VBoxManage startvm <vm_name> -type vrdp(crt启动时一般用headless),防止VRDP端口被外界访问到,添加参数--vrde=off;对于开启了headless模式的虚拟机我们可以用下列命令对其进行关闭重庆等操作: VBoxManage controlvm <uuid>|<name> pause|resume|reset|poweroff|savestate|
三十、windows下想找到一个文件所有的具体目录,用 dir /s /b | find ".htm" > bass_htm.txt,虽然用tree也可以,但有时不方便
三十一、linux通过IP找主机名:nmblookup -A ip;windows通过IP找主机名:nbtstat -a 10.16.214.60
三十二、linux记录用户登陆时间、操作日志、从哪里来脚本:http://outofmemory.cn/code-snippet/4677/time-denglu-IP-record-Linux-suo-exist-user-operation-rizhi-script
二十九、不同操作系统密码加密文件所在位置:
AIX:/etc/security/passwd or /tcb/auth/files or username;
A/UX :/tcb/files/auth/?/*
BSD:/etc/master.passwd
HP:/.secure/etc/passwd
三十、sudo配置解释:http://blog.sina.com.cn/s/blog_403aa80a01016o0v.html
打开sudo文件:visudo,权限配置格式如下:
%用户组名 主机名=(权限) 命令
用户名 主机名=(权限) 命令
三十一、Linux下如何查找文件以及文件内的内容:http://www.cnblogs.com/sunleecn/archive/2011/11/01/2232210.html
从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
匹配整个单词:
$ grep –w "被查找的字符串" 文件名
查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
统计文件中关键字分别出现的哪一行:grep -n "关键字" “文件路径” | cut -d ":" -f1
统计文件中关键字出现的最后一行行号:grep -n "关键字" “文件路径” | tail -n 1 | cut -d ":" -f1
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"
系统查找到httpd.conf文件后即时在屏幕上显示httpd.conf文件信息。
find/-name"httpd.conf"-ls
在根目录下查找某个文件
find . -name "test"
在根目录查找所有SUID文件并列出来
find / -type f -perm -04000 -ls
在根目录查找所有GUID文件并列出来
find / -type f -perm -02000 -ls
在某个目录下查找包含某个字符串的文件
grep -r -i "zh_CN" ./
三十二、查询某命令是哪个安装包安装的,先which 程序名看路径,然后再rpm -qf 路径 即可看到
三十三、nc 网络瑞士***
1、远程拷贝文件:
从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,server2上运行nc -lp 1234 > install.log;server1上运行: nc -w(定义timeout时长) 1 192.168.228.222(server2 IP) 1234 < install.log
2、克隆硬盘或分区:
操作与上面的拷贝是雷同的,只需要由dd获得硬盘或分区的数据,然后传输即可。
克隆硬盘或分区的操作,不应在已经mount的的系统上进行。所以,需要使用安装光盘引导后,进入拯救模式(或使用Knoppix工具光盘)启动系统后,在server2上进行类似的监听动作:
# nc -l -p 1234 | dd of=/dev/sda
server1上执行传输,即可完成从server1克隆sda硬盘到server2的任务:
# dd if=/dev/sda | nc 192.168.228.222 1234
※ 完成上述工作的前提,是需要落实光盘的拯救模式支持服务器上的网卡,并正确配置IP。
3、端口扫描:
引用# nc -v -w 1 192.168.228.222 -z(zero模式,用于端口扫描) 1-1000
hatest2 [192.168.228.222] 22 (ssh) open
4、模拟HTTP Headers
nc www.linuxfly.org 80
HEAD / HTTP/1.1
(两次回车)
如果遇到https网站时,可以使用openssl查看标语,如下:
openssl s_client -quiet -connect www.example.com:443
HEAD / HTTP/1.1
5、传输目录
从server1拷贝nginx-0.6.34目录内容到server2上
[root@hatest2 tmp]# nc -l 1234 |tar xzvf -
[root@hatest1 ~]# tar czvf - nginx-0.6.34|nc 192.168.228.222 1234
三十五、想知道操作系统内哪张网卡对应实际机器上哪张网卡时,linux用ethtool -p eth0,看物理机的灯闪烁
三十六、LINUX查看当前所在路径用pwd命令,光忘,日本人
三十七、debian系统查看软件安装情况用 dpkg -l
三十八、crontab使用方法:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
三十九、环境变量的设置位于/etc/profile文件,对所有用户都生效,对个别用户生效的则在用户的HOME目录下的.bash_profile设置
四十、若想在linux的终端打开文件用vim显示不同的颜色,则在当前登陆用户主目录下创建.vimrc文件,里面填写syntax on
四十一、rsyslog配置:客户端配置:在/etc/rsyslog.conf里面添加local7.* @192.168.42.129:514即使用UDP,若使用TCP则@@IP,另外还要有程序将日志输出到LOG_LOCAL7才行,例如 snort.conf里面这样配置:output alert_syslog: host=192.168.42.129:514 LOG_LOCAL7 LOG_ALERT;服务端配置:在/etc/rsyslog.conf里添加local7.* /var/log/snort/alert,取掉$ModLoad imudp $UDPServerRun 514之前的#号, 在/etc/default/rsyslog里面改为RSYSLOGD_OPTIONS="-c5 -r -x"
四十二、正则表达式:
基础正则表达式的元字符有:
扩展正则表达式的元字符有:
四十三、linux利用多核CPU来高效执行命令:parallel
1、如果有A、B、C三个程序需要运行,而C是需要在A和B都运行完之后再运行,面A和B可以同时运行,无依赖关系,则可以使用parallel -j 2 "sh a.sh" "sh b.sh";然后再执行sh c.sh
2、通常的grep是单进程处理,可以使用如下命令快速搜索文件文件:cat bigfile.txt | parallel --pipe grep ‘pattern‘,尝试使用parallel -pipe grep "pattern" 1.txt出错,可能不支持。
3、有空可以研究一下taskset命令,看是否也可以达到parallel效果
标签:linux
原文地址:http://70665.blog.51cto.com/60665/1654904