linux主机常用管理命令
(2011-08-24 13:07:26)
标签:
it |
分类: linux知识 |
1.杀掉MYSQL SHELL
ps aux|grep mysql|grep -v grep|awk '{print $2}'|xargs kill -9
2.删除当前目录下0字节的文件
find -type f -size 0 -exec rm -rf {} \;
3.匹配当data里包含"donald",输出第4列
awk '/donald/ {print $4}' data
扩展1:
awk '/donald|chin/ {print $1, $2}' data
扩展2:
awk '/a[rl]/ {print $1, $2}' data
使用"n"而不是空格做为分隔符
awk 'FS="n" {print $1}' data
4.截取对应的列数
awk -F":" '{ print $1 $7 }' /etc/passwd
5.对域名进行添加www.的shell
awk '{print"www."$1}' yuming.txt
>yuming2.txt
6.清理maillog日志
find . -name maillog | xargs echo " " >maillog
7.1.txt文件前面添加序号
awk '{print NR,$0}' 1.txt
8.1.txt匹配test开头的行后,将字段2和字段3相加后输出结果
awk '$1 ~/test/{count = $2 + $3;print count}' 1.txt
9.用grep命令在当前目录下的所有普通文件中搜索hostnames这个词
find . -name \* -type f -print |xargs grep "hostname"
注意,在上面的例子中, \用来取消find命令中的*在shell中的特殊含义
10.文件删除清理
find . -name "*.conf"
< rm ... ./conf/httpd.conf > ?
n
按y键删除文件,按n键不删除
11.在/var/log下拷贝小于100K的文件到/tmp下,如果有失败的发送邮件到635273926@qq.com,用shell/perl/python来实现。
#!/bin/bash
SDIR=/var/log/
DDIR=/tmp/
TMPFILE=/tmp/test.txt
find $SDIR -size -100k -type f > $TMPFILE
while read F_NAME
do
done < $TMPFILE
12. 根据下面的信息提取每个人的总分 输出到/home/total.txt
oldboy
kqzj
wodi
awk '{print $1,$2+$3}' infor >/home/tital.txt
13.在不影响MYSQL正常服务的情况下,如何导出MYSQL数据
mysqldump -all-databases >allbackupfile.sql
备份数据库
mysql -hhostname -uusername -ppassword databasename
< backupfile.sql 还原数据库
mysqldump -hhostname -uusername -ppassword databasename |gzip > backupfile.sql.gz 压缩备份数据库
gunzip < bckupfile.sql.gz |mysql -uusername
-ppassword
mysqldump -hhostname -uusername -ppassword databasename
specific_table1 specific_table2
>backupfile.sql
mysqldump -hhostname -uusername -ppassword -databases databasename1
atabasename2 databasename3
>multibackupfile.sql
mysqldump -no-data -databases databasename1 databasename2
databasename3>structurbackupfile.sql
14.在一个文件夹下建立类似如下规律性的文件夹:
11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45 51 52
53 54 55
#!/bin/sh
for i in `echo {1..5}{1..5}`;do
mkdir -p ./$i
done
或
#!/bin/bash
#for i in `seq 11 55`;
for i in $(seq 11 55)
do
done
15.统计末年某月的天数
cal 09 2008 | xargs | awk '{print $NF}'
cal 09 2008 |sed -n '3,$p' |awk 'BEGIN{sum=0}{sum+=NF}END{print
sum}'
16.统计文件大小的shell
ls -l $* | awk '
BEGIN { print "BYTES", "\t", "FILE" }
{ sum += $5
}
END { print "Total: ", sum, "bytes (" filenum " files)" }'
17.awk(基础)
====================================================
1.抽取域
awk -F: '{print $1}' /etc/passwd
2.保存输出
awk -F: '{print $1}' /etc/passwd | tee user
使用tee命令,在输出文件的同时,输出到屏幕
使用标准输出
awk -F: '{print $1}' /etc/passwd >user3
4.打印所有记录
awk -F: '{print $0}' /etc/passwd
5.打印单独记录
awk -F: '{print $1,$4}' /etc/passwd
6.打印报告头
awk -F: 'BEGIN {print "NAME "} {print $1}' /etc/passwd
7.打印结尾
awk -F: '{print $1} END {print "this is all users"}'
/etc/passwd
条件操作符
1.匹配
awk -F: '{if($1~/root/) print }'
/etc/passwd
2.精确匹配
使用等号 ==
awk -F: '{if($3=="0") print }' /etc/passwd
3.不匹配
!~
awk -F: '{if($1!~/linuxtone/) print }' /etc/passwd
!=
精确不匹配
awk -F: '{if($1!="linuxtone") print }' /etc/passwd
4.小于
<
5.小于等于
<=
6.大于
>
.........
7.设置大小写
awk '/[Rr]oot/' /etc/passwd
8.任意字符
awk -F: '{if($1~/^...t/) print}'
/etc/passwd
9.或关系匹配
awk -F: '{if ($1~/(squid|nagios)/) print}' /etc/passwd
10.行首
awk '/^root/'
/etc/passwd
11.AND &&
awk -F: '{if($1=="root" && $3=="0")
print}' /etc/passwd
12.OR ||
内置变量:
ARCC
ARGV
ENVIRON
FNR
FS
NF
NR