查找文件使用命令
查找目录下面大小超过5M的文件
1
$ find /home/ -size +5M
查找目录下100天之前修改过的文件
1
$ find /home/ -mtime +100
查找目录下60天未被访问过的文件
1
$ find /home/ \! atime -60
- 查找目录下面文件“core“,如果发现无需提示直接删除。
1
2
3
4
5
6$ find / -name core -exec rm {} \
# 查找排除某一个文件然后进行删除
$ find / -type f ! -name "test" -exec rm {} \;
$ find ./ -mtime +3 -name "*.log" -exec rm -rf {} \;
$ find /tmp -mtime +30 -type f -name "*.sh[ab]" -exec rm -f {} \;
在一个目录中保留最近30天的文件,30天前的文件自动删除
1 | $ find /tmp -mtime +30 -type f -name "*.sh[ab]" -exec rm -f {} \; |
- /tmp –设置查找的目录;
- -mtime +30 –设置时间为30天前;
- -type f –设置查找的类型为文件;
- -name *.sh[ab] –设置文件名称中包含sha或者shb;
- -exec rm -f –查找完毕后执行删除操作;
- 提示:将此命令写入crontab后即可自动完成查找并删除的工作
- 显示目录文件的文件名和它们的拥有者
1
$ ll | awk '{print $3,"owns",$9}'
显示你的系统上PCI总线和附加设备的信息。指定-v,-vv或-vvv来获取越来越详细的输出
- lspci 安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16$ sudo yum whatprovides */lspci
pciutils-3.5.1-2.el7.x86_64 : PCI bus related utilities
Repo : base
Matched from:
Filename : /usr/sbin/lspci
pciutils-3.5.1-3.el7.x86_64 : PCI bus related utilities
Repo : base
Matched from:
Filename : /usr/sbin/lspci
$ sudo yum install pciutils
$ lspci -vvvvv
lspci 更多详细使用
查看当前的Linux服务器的运行级别
1
2
3
4
5
6$ who -r
$ who -b
# 查看系统最后一次启动的时间
$ last reboot
# 查看系统历史启动的时间查看系统运行了多长时间
1
2
3$ cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
$ w
$ uptime查看系统启动的日期
1
$ date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
查找目录下文件内容没有包括“nginx”、“msgType”字符串的文件
1
2$ grep -r -l -v "nginx" /data/
$ grep -r -v "msgType" /data/查找目录下文件内容包括”nginx”字符串的文件。
1
2
3$ grep -r "nginx" /data/ 会把"nginx"字符串所在这行的内容显示出来
$ grep -o “nginx” /data/
$ grep -r -l "nginx" /data/ 不显示"nginx"字符串所在行,是显示文件cat使用
1
2
3
4
5
6
7
8$ cat sentry.conf.py |grep -v "^#" 查看配置文件不包括注释内容
$ cat -b `find /var/log/httpd/ -cmin -60 -print |sed "1d"`\ |awk '{print $2}'|sort |uniq -c |sort -n -k 1 -r |head -n 1 统计当前目录下日志文件里面I平访问量最多的一个IP
# 查看某一个时间段的IP地址访问排名前10
$ cat nginx_access.log|grep '+0800'|awk '{split($1,array,"[");if(array[2]>="25/Jul/2017:14:17:30" && array[2]<="25/Jul/2017:20:17:30"){print $0}}'|awk -F"^`" && "-" && "^`" '{print $1}'|sort|uniq -c|sort -n -k 1 -r|head -n 10
# 统计当前日志ip访问前10
$ cat nginx_access.log |awk -F"^" '{print $1}'|sort|uniq -c|sort -n -k 1 -r|head -n 10获取IP地址通用
1
$ ifconfig |sed -n 2p |awk '{print $1$2}'|sed 's/^.*[^0-9]\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)$/\1\.\2\.\3\.\4/g'
curl使用
1
2
3
4
5
6
7
8# 监控网页的响应时间
$ curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.baidu.com"
# 监控站点可用性
$ curl -o /dev/null -s -w %{http_code} "http://www.baidu.com"
# 开启gzip请求
$ curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte每10秒显示一次复制的大小
1
$ watch -n 10 du -sh /root
统计目录(包括子目录)下面文件个数
1
2
3
4
5
6
7
8
9
10
11
12$ find ./ -type f | wc -l
# 用find命令查找当前目录下是文件类型的文件,然后用wc来计数
$ ls -lR|grep "^-"|wc -l
# ls命令加R参数,列出下级子目录,使用grep命令过滤以“-”开头的,如果是目录就改成“^d”,后面用wc计数。
$ find ./ -name "*.*" |xargs cat|grep -v ^$|wc -l
$ find . \( ! -name '*.png' ! -name '*.gif' ! -name '*.jpg' ! -name '*.swf' \) -type f |wc -l
# 统计目录下所有文件的的行数,去掉空行
$ find ./ -name "*.*" |xargs cat|wc -l
$ find . \( ! -name '*.png' ! -name '*.gif' ! -name '*.jpg' ! -name '*.swf' \) -type f |xargs cat|wc -l查看系统tcp连接中各个状态的连接数
1
2
3
4
5
6
7
8
9
10# netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
# 输出每个IP的连接数,以及总的各个状态的连接数
$ netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'
# 统计当前tcp/ip链接数排名前10的IP
$ netstat -n|awk '/^tcp/ {print $5}'|awk -F':' '{print $1}'|sort|uniq -c|sort -n -k 1 -r|head -n 10
# 利用grep统计当前文件里面所有的IP地址
$ grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" nginx_access.log
查看系统当前进程打开的文件句柄数,按照最大的进行排序
1 | $ lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | more |
ping命令显示时间以及日期
1
$ ping www.sina.com.cn -i 3 | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()) } ' > /opt/sina.log &
ssh 远程执行命令
1
2
3
4
5
6
7$ ssh user@'ip' "date"
# 单个命令
$ ssh user@'ip' "ls -lstrh /opt; uname -a"
# 运行一个命令
$ for i in ${ip};do echo ${i}; ssh otoman@${i} "sudo systemctl restart crond";done