运维实用手册shell篇二软件系

软件

rpm{rpm-ivhlynx#rpm安装rpm-elynx#卸载包rpm-elynx--nodeps#强制卸载rpm-qa#查看所有安装的rpm包rpm-qa

greplynx#查找包是否安装rpm-ql#软件包路径rpm-Uvh#升级包rpm--testlynx#测试rpm-qc#软件包配置文档rpm--initdb#初始化rpm数据库rpm--rebuilddb#重建rpm数据库在rpm和yum无响应的情况使用先rm-f/var/lib/rpm/__db.00*在重建}yum{yumlist#所有软件列表yuminstall包名#安装包和依赖包yum-yupdate#升级所有包版本,依赖关系,系统版本内核都升级yum-yupdate软件包名#升级指定的软件包yum-yupgrade#不改变软件设置更新软件,系统版本升级,内核不改变yumsearchmail#yum搜索相关包yumgrouplist#软件包组yum-ygroupinstall"Virtualization"#安装软件包组repoquery-qlgstreamer#不安装软件查看包含文件yumcleanall#清除var下缓存}yum使用epel源{#包下载 #行前Ctrl+E #行尾Ctrl+S #终端锁屏Ctrl+Q   #解锁屏Ctrl+D   #退出}开机启动模式{vi/etc/inittabid:3:initdefault:#3为多用户命令#ca::ctrlaltdel:/sbin/shutdown-t3-rnow#注释此行禁止ctrl+alt+del关闭计算机}终端提示显示{echo$PS1#环境变量控制提示显示PS1=[\u

\H\w\A\

#]\$PS1=[\u

\h\W]\$exportPS1=[\[\e[32m\]\[\e[31m\]\u

\[\e[36m\]\h\w\[\e[m\]]\$#高亮显示终端}定时任务{at5pm+3days/bin/ls#单次定时任务指定三天后下午5:00执行/bin/lscrontab-e#编辑周期任务#分钟小时天月星期命令或脚本1,-3/2***命令或脚本file.log21echo"**2/root/sh"/var/spool/cron/work#普通用户可直接写入定时任务crontab-l#查看自动周期性任务crontab-r#删除自动周期性任务cron.deny和cron.allow#禁止或允许用户使用周期任务servicecrondstart

stop

restart#启动自动周期性服务*****echo"d"d$(date+\%Y\%m\%d).log#让定时任务直接生成带日期的log需要转义%}date{星期日[SUN]星期一[MON]星期二[TUE]星期三[WED]星期四[THU]星期五[FRI]星期六[SAT]一月[JAN]二月[FEB]三月[MAR]四月[APR]五月[MAY]六月[JUN]七月[JUL]八月[AUG]九月[SEP]十月[OCT]十一月[NOV]十二月[DEC]date-s#设日期date-s18:30:50#设时间date-d"7daysago"+%Y%m%d#7天前日期date-d"5minuteago"+%H:%M#5分钟前时间date-d"1monthago"+%Y%m%d#一个月前date-d1days+%Y-%m-%d#一天后date-d1hours+%H:%M:%S#一小时后date+%Y-%m-%d-d#日期格式转换date+%Y-%m-%d_%X#日期和时间date+%N#纳秒date-d"-08-:00:23"+%s#换算成秒计算(年至今的秒数)date-d"

"+%Y-%m-%d-%T#将时间戳换算成日期date-d"-01-01UTCseconds"+%Y-%m-%d-%T#将时间戳换算成日期date-d"`awk-F.{print$1}/proc/uptime`secondago"+"%Y-%m-%d%H:%M:%S"#格式化系统启动时间(多少秒前)}limits.conf{ulimit-SHn#临时设置文件描述符大小进程最大打开文件柄数还有socket最大连接数,等同配置nofileulimit-SHu#临时设置用户最大进程数ulimit-a#查看/etc/security/limits.conf#文件描述符大小openfiles#lsof

wc-l查看当前文件句柄数使用数量*softnofile#设置太大,进程使用过多会把机器拖死*hardnofile#用户最大进程数maxuserprocesses#echo$((`psuxm

wc-l`-`psux

wc-l`))查看当前用户占用的进程数[包括线程]usersoftnprocuserhardnproc#如果/etc/security/limits.d/有配置文件,将会覆盖/etc/security/limits.conf里的配置#即/etc/security/limits.d/的配置文件里就不要有同样的参量设置/etc/security/limits.d/90-nproc.conf#centos6.3的默认这个文件会覆盖limits.confusersoftnprocuserhardnprocsysctl-p#修改配置文件后让系统生效}随机分配端口范围{#本机连其它端口用的echo"00"/proc/sys/net/ipv4/ip_local_port_range}百万长链接设置{#内存消耗需要较大vim/root/.bash_profile#添加如下2行,退出bash重新登陆#一个进程不能使用超过NR_OPEN文件描述符echo/proc/sys/fs/nr_open#当前用户最大文件数ulimit-n}core崩溃文件查看{gdbcore.bt#查看函数调用信息(堆栈)}libc.so故障修复{#由于升级glibc导致libc.so不稳定,突然报错,幸好还有未退出的终端grep:errorwhileloadingsharedlibraries:/lib64/libc.so.6:ELFfileOSABIinvalid#看看当前系统有多少版本libc.sols/lib64/libc-[tab]#更改环境变量指向其他libc.so文件测试exportLD_PRELOAD=/lib64/libc-2.7.so#如果不改变LD_PRELOAD变量,ln不能用,需要使用/sbin/sln命令做链接#当前如果好使了,在执行下面强制替换软链接。如不好使,测试其他版本的libc.so文件ln-f-s/lib64/libc-2.7.so/lib64/libc.so.6}无法分配内存{fork:Cannotallocatememory#报错不一定是内存不够用,进程数或者线程数满了也会报这个错误,可以适当增加kernel.pid_max的值,cat/proc/sys/kernel/pid_max#默认3.2w}sudo{echomyPassword

sudo-Sls/tmp#直接输入sudo的密码非交互,从标准输入读取密码而不是终端设备visudo#sudo命令权限添加/etc/sudoers用户别名(可用all)=NOPASSWD:命令1,命令2userALL=NOPASSWD:/bin/su#免root密码切换root身份wangminglinuxfan=NOPASSWD:/sbin/apachestart,/sbin/apacherestartUserNameALL=(ALL)ALLUserNameALL=(ALL)NOPASSWD:ALLpeterliALL=(ALL)NOPASSWD:/sbin/serviceDefaultsrequiretty#sudo不允许后台运行,注释此行既允许Defaults!visiblepw#sudo不允许远程,去掉!既允许}grub开机启动项添加{vim/etc/grub.conftitlems-dosrootnoverify(hd0,0)chainloader+1}stty{#stty时一个用来改变并打印终端行设置的常用命令sttyiuclc#在命令行下禁止输出大写stty-iuclc#恢复输出大写sttyolcuc#在命令行下禁止输出小写stty-olcuc#恢复输出小写sttysize#打印出终端的行数和列数sttyeof"string"#改变系统默认ctrl+D来表示文件的结束stty-echo#禁止回显sttyecho#打开回显stty-echo;read;sttyecho;read#测试禁止回显sttyigncr#忽略回车符stty-igncr#恢复回车符sttyerase##将#设置为退格字符sttyerase^?#恢复退格字符定时输入{timeout_read(){timeout=$1old_stty_settings=`stty-g`   #savecurrentsettingsstty-icanonmin0time   #set10seconds,notsecondsevalreadvarname   #=read$varnamestty"$old_stty_settings"   #recoversettings}read-t10varname#更简单的方法就是利用read命令的-t选项}检测用户按键{#!/bin/bashold_tty_settings=$(stty-g)#保存老的设置(为什么?).stty-icanonKeypress=$(head-c1)#或者使用$(ddbs=1count=12/dev/null)echo"Keypressedwas\""$Keypress"\"."stty"$old_tty_settings"#恢复老的设置.exit0}}iptables{内建三个表:natmangle和filterfilter预设规则表,有INPUT、FORWARD和OUTPUT三个规则链vi/etc/sysconfig/iptables#配置文件INPUT#进入FORWARD#转发OUTPUT#出去ACCEPT#将封包放行REJECT#拦阻该封包DROP#丢弃封包不予处理-A#在所选择的链(INPUT等)末添加一条或更多规则-D#删除一条-E#修改-p#tcp、udp、icmp0相当于所有all!取反-P#设置缺省策略(与所有链都不匹配强制使用此策略)-s#IP/掩码(IP/24)主机名、网络名和清楚的IP地址!取反-j#目标跳转,立即决定包的命运的专用内建目标-i#进入的(网络)接口[名称]eth0-o#输出接口[名称]-m#模块--sport#源端口--dport#目标端口iptables-F#将防火墙中的规则条目清除掉#注意:iptables-PINPUTACCEPTiptables-restore规则文件#导入防火墙规则/etc/init.d/iptablessave#保存防火墙设置/etc/init.d/iptablesrestart#重启防火墙服务iptables-L-n#查看规则iptables-tnat-nL#查看转发iptables实例{iptables-LINPUT#列出某规则链中的所有规则iptables-Xallowed#删除某个规则链,不加规则链,清除所有非内建的iptables-ZINPUT#将封包计数器归零iptables-Nallowed#定义新的规则链iptables-PINPUTDROP#定义过滤政策iptables-AINPUT-s..1.1#比对封包的来源IP#!..0.0/24!反向对比iptables-AINPUT-d..1.1#比对封包的目的地IPiptables-AINPUT-ieth0#比对封包是从哪片网卡进入iptables-AFORWARD-oeth0#比对封包要从哪片网卡送出eth+表示所有的网卡iptables-AINPUT-ptcp#-p!tcp排除tcp以外的udp、icmp。-pall所有类型iptables-DINPUT8#从某个规则链中删除一条规则iptables-DINPUT--dport80-jDROP#从某个规则链中删除一条规则iptables-RINPUT8-s..0.1-jDROP#取代现行规则iptables-IINPUT8--dport80-jACCEPT#插入一条规则iptables-AINPUT-ieth0-jDROP#其它情况不允许iptables-AINPUT-ptcp-sIP-jDROP#禁止指定IP访问iptables-AINPUT-ptcp-sIP--dportport-jDROP#禁止指定IP访问端口iptables-AINPUT-sIP-ptcp--dportport-jACCEPT#允许在IP访问指定端口iptables-AINPUT-ptcp--dport22-jDROP#禁止使用某端口iptables-AINPUT-ieth0-picmp-micmp--icmp-type8-jDROP#禁止icmp端口iptables-AINPUT-ieth0-picmp-jDROP#禁止icmp端口iptables-tfilter-AINPUT-ieth0-ptcp--syn-jDROP#阻止所有没有经过你系统授权的TCP连接iptables-AINPUT-f-mlimit--limit/s--limit-burst-jACCEPT#IP包流量限制iptables-AINPUT-ieth0-s..62.1/32-picmp-micmp--icmp-type8-jACCEPT#除..62.1外,禁止其它人ping我的主机iptables-AINPUT-ptcp-mtcp--dport80-mstate--stateNEW-mrecent--update--seconds5--hitcount20--rttl--nameWEB--rsource-jDROP#可防御cc攻击(未测试)}iptables配置实例文件{#Generatedbyiptables-savev1.2.11onFriFeb:10:*filter:INPUTACCEPT[:]:FORWARDDROP[0:0]:OUTPUTACCEPT[:1533]#允许的IP或IP段访问建议多个-AINPUT-s.0.0.1-ptcp-jACCEPT-AINPUT-s..0.0/..0.0-ptcp-jACCEPT#开放对外开放端口-AINPUT-ptcp--dport80-jACCEPT#指定某端口针对IP开放-AINPUT-s..10.37-ptcp--dport22-jACCEPT#拒绝所有协议(INPUT允许)-AINPUT-ptcp-mtcp--tcp-flagsFIN,SYN,RST,PSH,URGRST-jDROP#允许已建立的或相关连的通行-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT#拒绝ping-AINPUT-ptcp-mtcp-jREJECT--reject-withicmp-port-unreachableCOMMIT#CompletedonFriFeb:10:}iptables配置实例{#允许某段IP访问任何端口iptables-AINPUT-s..0.3/24-ptcp-jACCEPT#设定预设规则(拒绝所有的数据包,再允许需要的,如只做WEB服务器.还是推荐三个链都是DROP)iptables-PINPUTDROPiptables-PFORWARDDROPiptables-POUTPUTACCEPT#注意:直接设置这三条会掉线#开启22端口iptables-AINPUT-ptcp--dport22-jACCEPT#如果OUTPUT设置成DROP的,要写上下面一条iptables-AOUTPUT-ptcp--sport22-jACCEPT#注:不写导致无法SSH.其他的端口一样,OUTPUT设置成DROP的话,也要添加一条链#如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链iptables-AOUTPUT-ptcp--sport80-jACCEPT#做WEB服务器,开启80端口,其他同理iptables-AINPUT-ptcp--dport80-jACCEPT#做邮件服务器,开启25,端口iptables-AINPUT-ptcp--dport-jACCEPTiptables-AINPUT-ptcp--dport25-jACCEPT#允许icmp包通过,允许pingiptables-AOUTPUT-picmp-jACCEPT(OUTPUT设置成DROP的话)iptables-AINPUT-picmp-jACCEPT(INPUT设置成DROP的话)#允许loopback!(不然会导致DNS无法正常关闭等问题)IPTABLES-AINPUT-ilo-pall-jACCEPT(如果是INPUTDROP)IPTABLES-AOUTPUT-olo-pall-jACCEPT(如果是OUTPUTDROP)}centos6的iptables基本配置{*filter:INPUTACCEPT[0:0]:FORWARDACCEPT[0:0]:OUTPUTACCEPT[0:0]-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT-AINPUT-picmp-jACCEPT-AINPUT-ilo-jACCEPT-AINPUT-s...61-ptcp-jACCEPT-AINPUT-ptcp--dport80-jACCEPT-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT-AINPUT-jREJECT--reject-withicmp-host-prohibited-AINPUT-ptcp-mtcp--tcp-flagsFIN,SYN,RST,PSH,URGRST-jDROP-AFORWARD-jREJECT--reject-withicmp-host-prohibitedCOMMIT}添加网段转发{#例如通过vpn上网echo1/proc/sys/net/ipv4/ip_forward#在内核里打开ip转发功能iptables-tnat-APOSTROUTING-s10.8.0.0/24-jMASQUERADE#添加网段转发iptables-tnat-APOSTROUTING-s10.0.0.0/.0.0.0-oeth0-jSNAT--to..10.#原IP网段经过哪个网卡IP出去iptables-tnat-nL#查看转发}端口映射{#内网通过有外网IP的机器映射端口#内网主机添加路由routeadd-net10.10.20.0netmask...0gw10.10.20.#内网需要添加默认网关,并且网关开启转发#网关主机echo1/proc/sys/net/ipv4/ip_forward#在内核里打开ip转发功能iptables-tnat-APREROUTING-d外网IP-ptcp--dport-jDNAT--to10.10.20.55:22#进入iptables-tnat-APOSTROUTING-s10.10.20.0/24-jSNAT--to外网IP#转发回去iptables-tnat-nL#查看转发}}



转载请注明:http://www.sonphie.com/jbzl/14559.html

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

    当前时间: