linux常用命令
总结一下,仅供个人使用,遇到的不断持续更新
********************************linux常用命令*****************************************
top -n 1 | awk '{print $5}' |sed -n 3p | sed 's/%//g' |sed 's/id,//g'
top 进程监测命令 -n 后面加的是几就刷新几次
awk 是输出第几列 如果就一行的话 那就是 这行的第几个数值
sed -n 3p 的意思是 top 命令输出的 第三行
sed 's/%//g' 里面那个 百分号 指的就是 需要剔除的字符串
**************************************************************************************
find / -name muttr 查找命令 根据文件名称查找文件
**************************************************************************************
grep "Name:" /proc/9905/status 根据进程id获取进程名称
**************************************************************************************
#判断某文件是否存在
myFile="/var /log/httpd/access.log"
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
**************************************************************************************
iconv -f iso-8859-1 -t UTF-8 ./newreport.txt -o ./newreport.txt 文件编码格式转换
**************************************************************************************
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
**************************************************************************************
#!/bin/bash
top1=`top -n 1 | awk '{print $5}' | sed -n 3p | sed 's/%//g' |sed 's/id,//g'`
sleep 3
top2=`top -n 1 | awk '{print $5}' | sed -n 3p | sed 's/%//g' |sed 's/id,//g'`
sleep 3
top3=`top -n 1 | awk '{print $5}' | sed -n 3p | sed 's/%//g' |sed 's/id,//g'`
#比较写法
a= ` `echo $top1 | awk -v bi=20 '{print($1>bi)?"1":"0"}'` `
b= ` `echo $top2 | awk -v bi=20 '{print($1>bi)?"1":"0"}'` `
c= ` `echo $top3 | awk -v bi=20 '{print($1>bi)?"1":"0"}'` `
#a=${top1:0:2} 取top1的值的前两位
echo $a
echo $b
echo $c
#if判断语句写法
if [ " $a" = " 1" ]&& [ " $b" = " 1" ] && [ " $c" = " 1" ] ; then
echo CPU占用率正常!>> ./newreport.txt
else
echo "不正常"
fi
rm -rf top 强制删除命令,整个目录
**************************************************************************************
#循环遍历数组
A=($df1 $df2 $df3 $df4 $df5)
for ((i=0; i<${#A[@]};i=i+1));
do
if [ ${A[$i]} -gt 90 ] ; then
echo "磁盘占用率过高!,请及时处理!"
else
echo "磁盘占用率正常!"
fi
done
**************************************************************************************
#求一个组数里面最大值
#!bin/bash
A=(0.03 0.05 0.08 0.02)
max=${A[0]};
for ((i=0; i<${#A[@]};i=i+1));
do
if [ ${A[$i]} > $max ]
then
max=${A[$i]}
fi
done
echo "最大值:$max"
**************************************************************************************
#scp的操作 不想输入密码就建立互信
#(1)同一服务器下不同用户之间文件拷贝 要求必须是root用户
scp ./main.sh sysAss@127.0.0.1:/home/sysAss/main.sh
#(2)通过本地向远程服务器上传文件(先登录15,再向24传递文件)
scp ./openssl-1.0.2j.tar.gz omg@192.188.188.88:/home/omg
#(3)通过远程服务器向本地传送文件(先登录24,再从15拷贝文件)
scp omg@192.188.188.88:/home/omg/openssh-7.5p1.tar.gz ./
**************************************************************************************
#定时执行某一程序
#!/bin/bash
#admin:spirits
while rp=1
do
is=`ps -ef | grep /home/gess/service/lib/faultDeal.jar | grep -v grep | awk '{print $2}' | sed -n 1p | sed 's/%//g' | sed 's/n//g' | wc -l`
if [ $is -eq 1 ]
then
id=`ps -ef | grep /home/gess/service/lib/faultDeal.jar | awk '{print $2}' | sed -n 1p | sed 's/%//g' | sed 's/n//g'`
kill -9 $id
java -jar /home/gess/service/lib/faultDeal.jar &
else
java -jar /home/gess/service/lib/faultDeal.jar &
fi
rm nohup.out
sleep 360
done
********************************************************************
#开启一个进程服务
nohup sh allmain.sh &
nohup sh check.sh >> myout.out &
********************************************************************
#sqlplus连接远程数据库
sqlplus std_edg/std_edg2015@188.88.10.10:7654/gzzc
# 用户名、密码、ip、数据库名称
********************************************************************
#从服务器上下载文件到本地、从本地上传文件到服务器
sz rz
********************************************************************