一些linux命令

查询程序占用内存情况

  以下是查询 postgres 的程序,查询其他应用修改对应名称即可。

sum=0
for i in `ps aux|grep postgres|grep -v grep |awk '{print $6}'`
do
((sum=sum+${i}))
done
echo $(echo "scale=2;${sum}/1024"|bc)MB

查询内存占用前20的进程

ps aux |awk '{printf $6" "}{for(i=11;i<=NF;i++){printf("%s ",$i)}}{print ""}' |sort -nr -k1|awk '{printf $1/1024 "Mb  "}{for(i=2;i<=NF;i++){printf("%s ",$i)}{print "-------"}}'|head -20

查询服务器核心数

cat /proc/cpuinfo| grep "processor"| wc -l

postgresql 新建用户并赋予权限

# 创建新账户
CREATE USER user_name_data WITH PASSWORD 'N7&37Pg#pn';

# 给新用户授权只读模式
alter user user_name_data set default_transaction_read_only=on;
# 切换到库gra
\c gra
# 赋权select权限
grant select on all tables in schema public to user_name_data;

分析nginx日志

  使用 awk 命令

统计ip 并排序
awk -F " " 'NR==1,NR==200{print $4, $1  | "sort -r -k2"}'   access.log

统计IP访问次数
awk '{ips[$1]++}END{for (i in ips)print i,ips[i]}' access.log 

统计访问大于100次的IP
awk '{ips[$1]++}END{for (i in ips){if(ips[i]>100)print i,ips[i]}}' access.log 

统计访问最多的10个页面
awk '{ips[$7]++}END{for (i in ips)print i,ips[i]}' access.log | sort -nr -k2 |head -50