您的位置:首页 > 运维架构 > Linux

linux日常运维命令

2016-08-05 14:17 507 查看
修改系统时间

[root@localhost ~]# date -s "2012-11-16 10:16:00"[root@localhost ~]# clock -w2.查看系统的内核
[root@localhost ~]# uname–a3.查看linux服务器物理CPU的个数
[root@localhost ~]# cat /proc/cpuinfo | grep "physicalid" | sort | uniq | wc –l4.查看linux服务器逻辑CPU的个数
[root@localhost ~]# cat /proc/cpuinfo | grep"processor " | wc –l5.查看linux服务器的内存使用
[root@localhost ~]# free –m已用内存:used-buffers-cached可用内存:free+buffers+cached6.查看服务器硬盘使用情况
[root@localhost ~]# fdisk–l7.查看文件系统的磁盘空间占用情况
[root@localhost~]# df –h
8.查看服务器IO使用情况,,(使用下面命令要先安装软件包yum –y install sysstat)
[root@localhost ~]# iostat Iostat–d –x –k 1(持续查看IO使用)如果%util接近100%说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果idble小于70%,I/O的压力就比较大,说明读取进程中有较多的等待,还可以结合vmstat查看b参数(等待资源的进程数)和wa参数(I/O等待所占用的CPU时间的百分比,高于30%时I/O的压力就比较高了)。9.查看目录的大小
[root@localhost ~]# du -sh /root10.Dd命令的使用,在进行维护系统时也经常用到
*制作交换文件的时候Dd if=/dev/zero of=/swapfile bs=1024 count=65536*制作驱动盘的时候Dd if=rhel40.img of=/dev/fd0 bs=10k制作ISO镜像的时候Dd if=/dev/cdrom of=/root/cd1 .iso12.查看系统负载情况[root@localhost ~]# uptime 或者 top在使用top时,如果r经常大于3或4,且id经常小于50,则标示CPU的负荷很重如果每个cpu当前的活动进程数大于5,则标示系统性能问题严重。13.使用vmstat命令查看linux系统的整体性能(进程、内存、虚拟内存、磁盘IO、CPU等)[root@localhost ~]# vmstat14.查看系统是23位的还是64位的
[root@localhost ~]# ls -lF / | grep /$ *或者用命令# file /sbin/init查看输出结果是否有/lib64的目录,有则说明系统是64位的,没有说明是32位的。15.查看系统安装的模块
[root@localhost ~]# lsmod16.查看服务器PCI设置(如:网卡、声卡、显卡等详细信息)
[root@localhost ~]# lspci 17.查看和设置用户密码策略
[root@localhost ~]# vim /etc/login.defs*强制密码长度[root@localhost ~]# vim /etc/pam.d/system-authpassword requisite pam_cracklib.sotry_first_pass retry=3 minlen=1218.设置登录超时自动退出终端
[root@localhost ~]# vim /etc/profieexportTMOUT=600
19.设置禁止root用户和空密码用户远程登录系统
[root@localhost ~]# vim /etc/ssh/sshd_configPermitRootLogin noPermitEmptyPasswords no如果拒绝某个用户远程登录系统则:(不能使用deny和allow)DenyUsers zhangfeng zhangxiao-允许用户zhang远程登录系统,允许用户wang在某个主机登录,其它用户不允许。AllowUsers zhang wang@192.168.12.1 限制登录失 败后的重试次数 MaxAuthTries 3设置完后SSH:使用命令是设置的生效:# /etc/init.d/sshd reload20.系统日志管理
[root@localhost ~]# vim /etc/syslog.conf (定义日志类型,输出路径)[root@localhost ~]# vim /var/log/secure(查看系统登录安全日志:SSH/POP3/telnet、ftp等)[root@localhost ~]# last (产看登录用户的信息)[root@localhost ~]# lastlog (查看所有用户登录的时间)21.设置用户在系统的权限;如只让用户使用ifconfig命令。
[root@localhost ~]# visudo (编辑sudo文件)Zhang localhost=/sbin/ifconfig定义别名格式如下:User_Alias MING=zhang,wang,xiao (别名必须大写,这是定义一个用户组)Host_Alias ZHU=smtp,pop Cmnd_Alias MING=/bin/rpm , /usr/bin/yum (定义一组命令集合)进行调用:Cmnd_Alias MING=/bin/rpm ,/usr/bin/yumZhang localhost=MING启用sudo后,进行日志设置[root@localhost ~]# visudoDefault logfile = “/var/log/sudo”[root@localhost ~]# vim /etc/syslog.confLocal12.debug /var/log/sudo[root@localhost ~]# /etc/init.d/syslog restart[root@localhost ~]# sudo –l (查看当前用户被授权的sudo命令)22.锁定密码文件,运行增加和删除;
[root@localhost ~]# chattr +i /etc/passwd [root@localhost~]# chattr -I /etc/passwd(取消i权限)
23.禁止用户执行控制台命令(poweroff、halt、reboot、eject)
在目录/etc/security/console.apps/下有以上命令,将其打包并移除到别的目录或者删除。24.禁止用户执行Ctrl+Alt+Del热键重启命令
[root@localhost ~]# vim /etc/inittab#ca::ctrlaltdel:/sbin/shutdown -t3 -r now[root@localhost ~]# init q (使用此命令使之生效)25.在grub之前设置密码,使用户在进入grub前输入密码
① [root@localhost ~]#grub-md5-crypt (设置MD5加密密码)
② [root@localhost ~]# vim/boot/grub/grub.conf (在title 前加入password --MD5 )
26 限制用户登录的tty终端
[root@localhost ~]# vim /etc/inittab (在tty终端前加#号,注释掉就可以)27.禁止root用户登录的终端
[root@localhost ~]# vim /etc/securetty (加#号注释)28.禁止除root外的用户从tty1终端登录系统
① [root@localhost ~]# vim/etc/pam.d/login
Account required pam_access.so (增加此认证)② [root@localhost ~]# vim /etc/security/access.conf
-:ALL EXCEPT root:tty1 (去掉#号)- : root :192.168.12.0/24 172.16.0.0/8(禁止root用户从这两个网段远程登录)29. 防火墙规则表
Filter表:主要是对数据包进行过滤
Nat表:主要用于修改数据包的IP地址、端口号等。
Mangle表:此表应用并不广泛。
Raw表:主要用于决定数据包是否被状态跟踪机制处理,在匹配时raw表优先于其它表。
Iptables -A(在末尾追加一条规则)
-D(删除指定链中的某条规则,按序号或内容)
-I(在指定的链中插入一条规则,没有指定位置,在开头插入)
-L (显示防火墙规则)
-F (清除指定连中所有规则,没有指定则清楚表中所有链的规则)
-X(清除用户自定义的规则链)
-P (设置默认的策略)
30.Linux系统SNAT(只能用在nat表的POSTROUTING链)和DNAT(只能用在nat表的prerouting和output 链)策略使用
* iptables -t nat -A POSTROUTING –s 192.168.1.0/24 -o etho -j SNAT --to-source 200.100.100.1 (有固定公网IP使用此策略)* iptables -t nat -A POSTROUTING –s 192.168.1.0/24 -o ppp0 -j MASQUERADE (使用动态公网IP时使用次策略) * Iptables -t nat -A PREROUTING -I eth0 -d 200.100.100.1 -p tcp --dport 80 -j DNAT --to-destination 192.68.12.1 (首先要开启路由转发功能,在使用DNAT策略)31. 代理服务器squid 配置文件:/etc/squid/squid.conf http_port 3128 (这是squid的默认端口号) cache_mem 64MB (用于设置缓存的内存空间大小) maximum_object_size 4096 KB (允许保存的缓存的最大对象大小) reply_body_max_size 1024 allow all (允许用户下载的最大文件大小) access_log (用于指定日志文件的保存位置) visible_hostname(用于设置代理服务器可用的完整主机名) [root@localhost~]# squid -z (初始化缓存目录) [root@localhost~]# squid -k reconfigure (重新加载配置文件) 脚本基础: Sed的基础用法

Sed的格式如下:Sed 【-nefr】【n1,n2】 action其中:-n :是安静模式,只有经过sed处理过的行才显示出来,其它的不显示。-e :默认选项,表示直接在命令行模式进行sed操作。-f :将sed的操作写在一个文件里,如:-f filename-r :表示使sed支持扩展正则表达式。N1,n2 :选择要进行处理的行。如10,20表示在10~20行之间处理。a : 表示添加,后接字符串,添加到当前行的下一行。c : 表示替换,后接字符串,用它替换n1,n2之间的行。d : 表示删除字符模式的行,语法为sed ‘/regexp/d’ ,斜杠之间是正则表达式,模式在d前面,d后面一般不接任何内容。i : 表示插入,后接字符串,添加到当前行的上一行。P : 表示打印,打印某个选择的数据,通常与–n 一起使用。S : 表示搜索,还可以替换,例如:1,20s/hao/zhang/g表示替换1~20行的hao为zhang。实例如下:① 显示password内容,将2~5行删除后显示
[root@node-rac1 ~]# cat -n /etc/passwd | sed '2,5d'② 在文件第二行后面加上hello语句。
[root@node-rac1 ~]# cat -n /etc/passwd | sed '2a hello'③ 在文件第二行后面加上两行字,
[root@node-rac1 ~]# cat -n /etc/passwd | sed '2a hello? \zhangfneg ?'④ 将2~5行的内容替换成“我是好人”
[root@node-rac1 ~]# cat -n /etc/passwd | sed '3,37c我是好人'⑤ 只显示文件5~7行
[root@node-rac1 ~]# cat -n /etc/passwd | sed -n '5,7p'利用此表达方式也可以很轻松的分析日志:[root@node-rac1 ~]# cat /var/log/secure | sed -n'/12:12:50/,/12:13:50/p'⑥ 只显示IP地址和子网掩码
⑦ [root@node-rac1 ~]# ifconfigeth0 | grep "inet addr" | awk -F: '{print $2,$4}'|
> awk '{print $1,$3}'168.12.231 255.255.255.0[root@node-rac1 ~]#⑧ 修改文件中第3行中的while为root。
[root@node-rac1 ~]# sed -i '3s/root/while/g' zhang.sh
2.Sort在linux中的用法
Sort –b : 忽略前导空格Sort -f : 忽略大小写Sort -M : 按月排序Sort -n : 按数字排序Sort -r : 倒序排列Sort -o : 输入之文件Sort -u 文件名 :表示忽略重复,取单一Sort a.txt |uniq -I 表示取消重复查看重复值有多少次。例如:要查看服务器被多少IP访问过 [root@node-rac1 ~]#sort /var/log/httpd/access-log | awk '{print $1}' | uniq –c3.Grep 在linux中的用法
Grep -a : 表示以文本文件方式搜索。Grep -c : 表示计算找到符合行的次数Grep -i : 忽略大小写。Grep -n : 表示输出行号。Grep -v : 表示反向选择。正则表达式:*修饰符:前一个字符出现零次或多次。[ ] 通配符:任意单个字符在[]中. 通配符:任意单个字符。[ ^ ] 通配符:不在集合中的任意单个字符。^ 定位点:行首,或以什么开头。$ 定位点: 行尾。[ n1-n2 ]:列出截取的范围:grep ‘[a-z]’a.txt[:ulnum:]0-9,A-Z,a-z[:digit:] 0-9[:alpha:]A-Z,a-z[:upper:] A-Z[:lower:] a-z[:punct:] 标点符号。 例如:搜索符合的单词的行。[root@node-rac1 ~]# grep –n 't[ae]st' zhang.txt取出oo前面不是g的行[root@node-rac1 ~]# grep -n '[^g]oo' zhang.txt查看文件开头不是以字母的行[root@node-rac1 ~]# grep -n '^[^a-zA-Z]' zhang.sh查询以 . 结尾的文件行[root@node-rac1 ~]# grep -n '\.$' hao扩展正则表达式egrep的使用:(grep只支持基础表达式,而egrep支持扩展,其实egrep是grep -E的别名) + :表示一个或多个重复字符。与.*作用类似
? :表示0个或一个字符。与.*作用类似
| :表示或的关系。比如’gd|good|dog’表示有gd和good和dog的字符串。
例如:查找文件,去除空白行和行首#的行
[root@node-rac1~]# egrep -v '^$|^#' hao
例如:-exec ok的用法查找文件并显示文件的属性[root@node-rac1 ~]# find /root/ -name zhang.sh -exec ls -ld {} \;4.Find的常用参数
-name :按照文件名查找-perm :按照文件的权限查找文件。如:-777-type : 按照类型查找:d目录;c字符设备文件;p管道文件;f普通文件;l符号链接文件
-user: 按照文件属主查找。
-group:按照文件属组查找文件。
-mtime –n +n :按照文件的更改时间查找文件。
-nouser和-nogroup:表示查找无效属组和属主的文件。
Xargs参数的用法和exec差不多。
如:查看当前目录下文件权限是777的文件并同时将所有人执行的权限收回。
[root@node-rac1~]# find / -perm -777 -print | xargs chmod o-x
5.脚本常用变量
Read也可以设置变量如:#read zhangfeng Ni shi ge hao xuesheng!#echo $zhangfneg$# :表示命令行中位置参数的数量。$* :表示所有位置参数的内容。$? :表示命令执行后返回的状态。返回值为0为正确。非0 表示命令执行错误。$$ :表示当前的进程号$! :表示后台运行的最后一个进程的进程号。$0 :表示当前执行的进程的进程名。数值比较:-eq :等于-ne :不等于-gt :大于-lt :小于-le :小于或等于-ge :大于或等于逻辑测试:&& :逻辑与|| :逻辑或! :逻辑否脚本结构

① :单分支的if语句
If Thenfi② :双分支的if语句
If ThenElse fi③ :多分支的if语句
If ThenElif ThenElsefi④ :for循环语句
For Dodone⑤ :while语句循环
While Dodone⑥ :case语句
Case 变量值 in 模式1)命令;;模式2)命令;;*)默认命令 esac
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  命令 linux 运维