一、常用shell命令
1.查看进程:
ps -aux | grep 进程名
2.重启Tomcat:
service tomcat restart
3.进入目录:
cd wenjianjia
4.强制删除压缩包:
rm -rf? 压缩包名
5.将war包压缩:
tar? zcvf? war包名称.tgz? war包名称.
例:tar zcvf learn.war.tgz? learn.war/
6.将本地文件上传到服务端上的/home/apache/learn路径
scp? learn.war.tgz? root@ip:/home/apache/learn
7.从远程服务器获取文件并放置到本地home路径下
scp -p 22 root@ip:/home/apache/learn/learn.war.tgz??/home/learn.war.tgz
8.查看文件显示行数
cat -n learn.sh
9.查看日志
tail? -f? *.log
10.查看当前路径
pwd
11.sed截取命令,截取以learn_s开头learn_e结尾的内容
sed -i '/learn_s/d' home/initit.js
sed -i '/learn_e/d' home/Initit.js
12.cp命令将?/home/apache/file/路径下的文件递归强制复制到/home目录下并更名为Initit.js
cp -rf /home/Initit.js /home/apache/file/
二、常用部分脚本
1.从远程服务端下载apk,替换现有apk,并将原有apk改为加日期格式
#!/bin/sh
file_name="learn.apk"?? //定义file_name为learn.apk
url="http://ip:端口号/home/apache/haha.apk"? //定义url中的指定haha.apk文件
mv ${file_name}? ${file_name}_`date? +%Y%m%d%H%M%S`?? //将现有apk重命名为learn.apk_日期(年月日)格式
wget ${url}? -O ${file_name}? //?把URL中指定的文件下载到当前目录。 要指定不同的文件名,使用-O选项(大写字母O)
2.创建启动程序、终止程序、重启程序脚本
#!/bin/sh
proc_name=$1//程序进程名定义为$1
proc_start="start"${proc_name}".sh"//定义启动命令名称格式
proc_stop="stop"${proc_name}".sh"// 定义终止命令名称格式
proc_restart="restart"${proc_name}".sh"//重定义重启命令名称格式
touch ${proc_start} ?${proc_stop} ?${procl_restart}//创建开始、终止、重启
#
echo '#!/bin/sh'>${proc_start} //将#!/bin/sh写到开始脚本里
echo '#!/bin/sh'>${proc_stop}// 将#!/bin/sh写到终止脚本里
echo '#!/bin/sh'>${proc_restart} 将#!/bin/sh写到重启脚本里
#start开始脚本
#echo "mkdir /home/learn/${proc_name}/logs ?-p" >>${proc_start} //创建日志到开始脚本
echo "py_flag=pypy" >>${proc_start}//定义启动方式为pypy写入脚本
echo "proc_name=${proc_name}"? ? >>${pro_start}//定义程序名称写入脚本
echo 'proc_app="/home/learn${proc_name}/app.py"'? ? >>${proc_start}? //定义app.py的路径写入脚本
echo "mkdir ?/var/log/\${proc_name}/ ?-p"? ?>>${proc_start}//创建日志路径写入开始脚本
echo "nohup \${py_flag} \${proc_app} ??> /dev/null & ?" >>${proc_start}// 运行python程序 app.py脚本并指定存放文件目录
注意:app.py在此不予讲解
#stop停止脚本
echo "proc_name=${proc_name}" >>${proc_stop}
echo "flag_add=app" >>${proc_stop}
echo "py_flag=pypy" >>${proc_stop}
echo "kill -9 \`ps -ef|grep \${proc_name} |grep -v grep ?|grep \${flag_add} |grep ?\"\${proc_name}/\${flag_add}\" |awk -f\" \" '{print \$2}'\`" >>${proc_stop}//查找到程序的端口号杀死进程
注意: :表示第二个字段? print : 打印第二个字段
#restart
echo "proc_name=${proc_name}" >>${proc_restart}
echo 'stop_shell="/home/learn/stop${proc_name}.sh"' >>${proc_restart}
echo 'start_shell="/home/learn/start${proc_name}.sh"' >>${procl_restart}
echo 'sh ${stop_shell}' >>${proc_restart}//执行终止进程脚本
echo 'sleep 1' >>${proc_restart}//当前线程睡眠1s钟
echo 'sh ${start_shell}'? ? ?>>${proc_restart}//执行开始脚本
chmod ?777 ?${pro_start} ?${proc_stop} ${proc_restart}//给三个脚本赋予最高权限