作为一名Linux系统管理员,熟悉并熟练运用一些常用的命令是必不可少的,对设备即文件的Linux系统来说,Linux系统管理的命令是它正常运行的核心。笔者根据实际工作总结一些常用指令,附上一些相对常见的警报处理方法,以供共同学习。
【1】、查看命令(ls)语法:ls [option] [dirname]常用参数:-a,–all列出目录下的所有文件,包括以 .开头的隐含文件-h,–human-readable以容易理解的格式列出文件大小 (例如 1K 234M 2G)-i,–inode印出每个文件的 inode号-l除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。 [gz_fieldyang@ test ~]$ ls -ltrtotal192-rw-rw-r--1 gz_fieldyang gz_fieldyang 88 Mar 4 14:36 test.html-rw-rw-r--1 gz_fieldyang gz_fieldyang 18 Mar 4 14:47 sed-n.sed-rw-rw-r--1 gz_fieldyang gz_fieldyang 182 Mar 4 15:21 test.txt-rw-rw-r--1 gz_fieldyang gz_fieldyang 50 Mar 4 16:06 example.txt
案例分析:一般用于PortLinkStatus (Integer): down或者more than 1 CDR update process之类的警报,查看cdr>login>cd/opt/xxx/pcp>ls-lt | more>cd/opt/xxx/cdr>ls-lt | more
【2】、查看进程存在与否 (ps)语法:ps[option]命令参数:a 显示所有进程-a显示同一终端下的所有程序-A显示所有进程c 显示进程的真实名称-N反向选择e 显示环境变量f 显示程序间的关系-H显示树状结构r 显示当前终端的进程T 显示当前终端的所有程序u 指定用户的所有进程-au显示较详细的资讯-aux显示所有包含其他使用者的行程-C<命令>列出指定命令的状况--lines<行数>每页显示的行数--width<字符数>每页显示的字符数--help显示帮助信息--version显示版本显示 [gz_fieldyang@test ~]$ ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
(用户)(进程ID)(进程耗CPU比)(进程耗物理内存比)(耗虚拟内存量)(耗固定内存量)(运行终端机)(状态信息)(触发时间)(运作时间)(实际指令)root 1 0.0 0.0 2064 592 ? Ss 2015 2:24 init [5] root 2 0.0 0.0 0 0 ? S< 2015 8:33 [migration/0]root 3 0.0 0.0 0 0 ? SN 2015 0:06 [ksoftirqd/0]...root 30641 2.0 0.0 9916 2812 ? Ss 10:41 0:00 sshd: gz_fieldyang [priv]871 30644 0.0 0.0 10048 1672 ? S 10:41 0:00 sshd: gz_fieldyang@pts/2871 30646 1.5 0.0 4528 1388 pts/2 Ss 10:41 0:00 -bash871 30677 0.0 0.0 4248 936 pts/2 R+ 10:41 0:00 ps -auxroot 31137 0.0 0.0 0 0 ? S Apr10 0:04 [pdflush]
说明:USER:该 process 使用者的账号PID:该 process的号码%CPU:该 process 使用掉的 CPU资源百分比%MEM:该 process 所占用的物理内存百分比VSZ:该 process使用掉的虚拟内存量 (Kbytes)RSS:该 process占用的固定的内存量 (Kbytes)TTY:该 process是在那个终端机上面运作,若与终端机无关,则显示 ?, 另外,tty1-tty6是本机上面的登入者程序,若为 pts/0等等的,则表示为由网络连接进主机的程序。STAT:该程序目前的状态,主要的状态有R:该程序目前正在运作,或者是可被运作S:该程序目前正在睡眠当中 (可说是 idle状态),但可被某些讯号(signal)唤醒。T:该程序目前正在侦测或者是停止了Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie(疆尸)程序的状态START:该 process 被触发启动的时间TIME:该 process实际使用 CPU运作的时间COMMAND:该程序的实际指令
案例分析:配合grep查找特定进程,一般用于出现诸如Application process "..." not running 或者disk full之类的警报ps -ef |grep ...实例1:[gz_fieldyang@test ~]$ ps -ef | grep mysqldroot 7370 1 0 2011 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql--skip-slave-startmysql 7427 7370 0 2011 ? 7-02:05:47 /usr/local/mysql/bin/mysqld--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data --user=mysql--skip-slave-start--log-error=/usr/local/mysql/data/test.com.err--pid-file=/usr/local/mysql/data/test.com.pid836 20670 20606 0 15:26 pts/1 00:00:00 grep mysqld
实例2:>1.查看磁盘情况[root@test ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg00-lvol01 20G 20G 0 100% //dev/mapper/vg00-lvol04 9.7G 1.7G 7.6G 19% /var/dev/mapper/vg00-lvol06 20G 5.2G 14G 29% /var/www /dev/mapper/vg00-lvol05 20G 10G 8.4G 55% /home/dev/mapper/vg00-lvol07 20G 912M 18G 5% /housekeep/dev/mapper/vg00-lvol03 9.7G 5.7G 3.6G 62% /usr/dev/cciss/c0d0p1 99M 12M 82M 13% /boottmpfs 12G 0 12G 0% /dev/shm
>2.切换至警报路径寻找大文件进程号[root@test ~]# cd /trans/ph/[root@test ph]# ls -ltr|tail....-rw-r--r-- 1 root root 9562558464 Mar 7 17:48 YLWb0443drwxrwxrwx3950 root root 184320 Mar 7 17:48 mov-rw-r--r-- 1 root root 9322479616 Mar 7 17:48 2quZ0443[root@test ph]# ps -ef|grep 2quZ0443root 4697 1 74 17:13 pts/1 00:25:40 .....root 4702 4697 21 17:13 pts/1 00:07:25.....root 19935 17542 0 17:48 pts/4 00:00:00 grep 2quZ0443
>3.杀死进程[root@test ph]# kill -9 4697 4702[root@test ph]# ps -ef|grep YLWb0443root 4220 1 74 17:13 pts/1 00:26:27/var/www /pdup /var/www/ YL/YLWb0443 /transcoder/iphone/mov/YL/YLWb0443.movroot 4225 4220 21 17:13 pts/1 00:07:41/var/www/ /ipmplayer -quiet -endpos +3600 -cache-min 0 -cache-seek-min 90 -vfdsize=336:224:0,scale=0:0,expand=336:224……root 21602 17542 0 17:48 pts/4 00:00:00 grep YLWb0443
【3】、查看日志文件是否运行,显示指定文件末尾内容,不指定文件时,作为输入信息进行处理 (tail)语法:tail[必要参数][选择参数][file] 命令参数:-f循环读取-q不显示处理信息-v显示详细的处理信息-c<数目>显示的字节数-n<行数>显示行数--pid=PID与-f合用,表示在进程ID,PID死掉之后结束.-q, --quiet, --silent从不输出给出文件名的首部-s, --sleep-interval=S与-f合用,表示在每次反复的间隔休眠S秒 一般用于出现诸如Application process "..." not running或者(update.sh)’...‘ is not synced或者 App_Procs port18506 ERROR之类的警报,或者配合grep查找特定状态信息/var/www/.../.../logtail-f xxx.log
实例1:(update.sh)’...‘ is not synced[gz_fieldyang@test] cd /gz/util/HealthCheckScript/[gz_fieldyang@test HealthCheckScript]$ tail -20 healthcheck_log.txt2016-04-0815:19:03 (resume.sh) cg1 is synced gzBehavior: 02016-04-0815:19:04 (resume.sh) cg2 is not synced gzcBehavior: 02016-04-0815:19:05 (resume.sh) cg3 is synced gzBehavior: 02016-04-0815:19:06 (resume.sh) cg4 is synced gzBehavior: 02016-04-0815:19:06 (resume.sh) cg5 is synced gzBehavior: 0...
实例2:切换到特定文件夹,查看日志cd/home/.../logtail-f portxxxxx.log
实例3:配合grep查找特定状态信息[root@test upelogs]# tail -f upe-debug.log | grep status@S[2016-03-2418:53:07.962][http-80-1] DEBUG - Reply with response <?xml version="1.0"……<Result>id@...
.status@S|ove....></soap:Envelope>
【4】、启动进程(start,reatart)一般用于出现诸如Application process "..." not running或者 connection fail或者 request time out之类重启步骤如下:①1).checkthe process if runningps-ef|grep mysqld2).if not running then restart/etc/init.d/mysqldrestart②/sbin/servicentpd restart/sbin/servicentpd status③login>bash>xxxstatus>cd/var/xxxx/LOG>tail-f xxxxx.log>xxxx stop>xxx status>xxxx start>xxx status
【5】、文件传输(ftp)failed to FTP file to ... Procedure 可能原因是磁盘将满或者vsFTPd进程未运行 实例1:磁盘将满[fieldyang@test~]$ ftp 127.0.0.1Connectedto 127.0.0.1.220(vsFTPd 2.0.5)530Please login with USER and PASS.530Please login with USER and PASS.KERBEROS_V4rejected as an authentication typeName(127.0.0.1:fieldyang):[fieldyang@test ~]$ df -hFilesystem Size Used Avail Use% Mounted on/dev/map/vg00-lvol01 2.0G 683M 1.2G 37% //dev/map/vg00-lvol05 97G 18G 76G 19% /home/dev/map/vg00-lvol04 4.9G 3.7G 927M 81% /var/dev/map/vg00-lvol03 7.8G 4.5G 3.0G 61% /usr/dev/map/vg00-lvol06 242G 85G 147G 37% /smc/dev/sda1 99M 18M 77M 19% /boottmpfs 4.0G 0 4.0G 0% /dev/shm
实例2::vsFTPd进程是否运行1).检测FTP服务是否开启①查看进程是否存在ps -ef | grep ftp [gz_fieldyang@test ~]$ ps -ef | grep ftp nobody 3461 6064 0 Mar24 ? 00:00:00 /usr/sbin/vsftpd/etc/vsftpd/vsftpd.confgup 3477 3461 0 Mar24 ? 00:02:31 /usr/sbin/vsftpd/etc/vsftpd/vsftpd.confroot 6064 1 0 2011 ? 00:08:36 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf...若并未找到任何包含ftp关键字的进程信息,可判断服务未开启。②.查询vsftpd服务是否存在service vsftpd status vsftpd是最常见的FTP服务器,一般Linux系统都是通过vsftpd来搭建FTP服务环境。[gz_fieldyang@test ~]$ /sbin/service vsftpd statusvsftpddead but subsys locked2).开启FTP服务/sbin/servicevsftpd start 3).查看状态/sbin/servicevsftpd status
附:编辑vsftpd.conf简单配置实现匿名上传下载vivsftpd.confanon_upload_enable=YESanonymous_enable=YESwrite_enable=YESAnon_mkdir_write_enable=yes
【6】、检查linux服务器的文件系统的磁盘空间占用情况(df)Df命令在运维中使用广泛,使用参数相对单一,大多数情况下都是用(df –kh)来查看磁盘占用情况,以便获取硬盘被占用了多少空间,目前还剩下多少空间等信息。语法:df [option] [file]参数:必要参数:-a全部文件系统列表-h方便阅读方式显示-i显示inode信息-k区块为1024字节-l只显示本地文件系统--no-sync忽略 sync命令-P输出格式为POSIX--sync在取得磁盘信息前,先执行sync命令-T文件系统类型选择参数:--block-size=<区块大小>指定区块大小-t<文件系统类型>只显示选定文件系统的磁盘信息-x<文件系统类型>不显示选定文件系统的磁盘信息--help显示帮助信息--version显示版本信息 实例:如:
"/:" filesystem over 98% full(819MB free)[gz_fieldyang@test ~]$ df -khFilesystem Size Used Avail Use% Mounted on
(文件系统) (容量)(已用)(可用)(已用占比)(挂载点)/dev/mapper/vg00-lvol01 2.0G 807M 1.1G 43% //dev/mapper/vg00-lvol03 4.9G 3.9G 780M 84% /usr/dev/mapper/vg00-lvol04 4.9G 2.7G 2.0G 58% /var/dev/mapper/vg00-lvol05 15G 11G 3.2G 78% /home/dev/mapper/vg00-lvol06 20G 14G 5.3G 73% /smc/dev/sda1 99M 18M 76M 19% /boottmpfs 1014M 0 1014M 0% /dev/shm[gz_fieldyang@test ~]$
【7】、建立用户帐号和创建用户的起始目录(useradd)语法:useradd [-d home] [-s shell] [-c comment] [-m [-ktemplate]] [-f inactive] [-eexpire ] [-p passwd] [-r]name主要参数 -c:加上备注文字,备注文字保存在passwd的备注栏中。 -d:指定用户登入时的启始目录。 -D:变更预设值。 -e:指定账号的有效期限,缺省表示永久有效。 -f:指定在密码过期后多少天即关闭该账号。 -g:指定用户所属的群组。 -G:指定用户所属的附加群组。 -m:自动建立用户的登入目录。 -M:不要自动建立用户的登入目录。 -n:取消建立以用户名称为名的群组。 -r:建立系统账号。 -s:指定用户登入后所使用的shell。 -u:指定用户ID号。useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。 实例:建立一个新用户账户,并设置ID: [root@ test ~]#useradd Kin_ma-u 544
groupadd:将新组加入系统。语法:groupadd [-g gid] [-o]] [-r] [-f]groupname 3.主要参数 -g gid:指定组ID号。 -o:允许组ID号,不必惟一。 -r:加入组ID号,低于499系统账号。 -f:加入已经有的组时,发展程序退出。 【8】、修改用户帐号(usermod)语 法:usermod [-LU][-c<备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]补充说明:usermod可用来修改用户帐号的各项设定。参 数: -c<备注> 修改用户帐号的备注文字。 -d登入目录> 修改用户登入时的目录。 -e<有效期限> 修改帐号的有效期限。 -f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。 -g<群组> 修改用户所属的群组。 -G<群组> 修改用户所属的附加群组。 -l<帐号名称> 修改用户帐号名称。 -L 锁定用户密码,使密码无效。 -s<shell> 修改用户登入后所使用的shell。 -u<uid> 修改用户ID。 -U 解除密码锁定。 groupmod(groupmodify)功能说明:更改群组识别码或名称。语 法:groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]补充说明:需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。参 数: -g <群组识别码> 设置欲使用的群组识别码。 -o 重复使用群组识别码。 -n <新群组名称> 设置欲使用的群组名称。 实例:修改已辞职管理员账户jack为新管理员账户Field[root@ test ~]# usermod-l gz_fieldyang gz_jack[root@ test ~]# usermod -d/home/gz_fieldyang gz_fieldyang[root@ test ~]# groupmod -ngz_fieldyang gz_jack[root@ test ~]# mv /home/gz_jack/home/gz_fieldyang[root@ test ~]# passwd gz_fieldyang
示例:修改组名.[root@ test ~]# groupadd linuxso[root@ test ~]]# tail -1 /etc/grouplinuxso:x:500:[root@ test ~]# tail -1 /etc/grouplinuxso:x:500:[root@ test ~]# groupmod -n linuxlinuxso[root@ test ~]# tail -1 /etc/grouplinux:x:500:
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2016-04/130077p2.htm
使用Maven在NetBeans下构建Wicket项目Linux管道的作用--管道命令在脚本中的使用相关资讯 linux常用命令 Linux系统管理员
- 常用的Linux命令 (今 08:47)
- Linux目录结构和常用命令 (08月29日)
- 一些 Linux 常用命令说明 (06月04日)
| - Linux 文件与目录的基本常用命令 (09月03日)
- Linux常用命令札记 (08月14日)
- Linux常用命令:nslookup, (01月08日)
|
本文评论 查看全部评论 (0)