在linux上部署启动项目:
1.将新的war上传至linux里的某个文件夹
2.关闭原项目
调用tomcat关闭脚本
使用ps查看进程,然后删除对应的进程
3.备份并删除原war包,将新war包移动至tomcat里的webapp
4.使用tomcat脚本开启项目
5.使用tail -f命令实时查看tomcat的输出文件cataline.out
---------------------------------
进程查看
ps -ef|grep java
PS是LINUX下最常用的进程查看命令
-e 显示所有进程。
-f 参数是全格式输出
ps -e 此参数的效果和指定"A"参数相同。
ps -A 显示所有程序
grep命令是查找(grep全称是Global Regular Expression Print,)
终止进程
kill -9 11752
kill与kill -9的区别:
执行kill命令,系统会发送一个SIGTERM信号给对应的程序。可能会释放自己的资源,然后再停止。(不会立马执行(能被阻塞))
然而kill -9命令,系统给对应程序发送的信号是SIGKILL。exit信号不会被系统阻塞
调用sh脚本
./startup.sh
输出实时日志信息
tail -f ../logs/catalina.out
tail - 输出文件的末尾部分
-f, --follow[={name|descriptor}] 当文件增长时,输出后续添加的数据;
-n, --lines=N 输出最后N行,而非默认的最后10行
catalina.out 是tomcat的标准输出
删除旧的项目信息
rm -rf iptvScriptSend*
rm命令用于删除一个文件或者目录。
-r,-R:递归删除,将指定目录下的所有文件与子目录一并删除;
-f:不提示,强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-v:显示指令的详细执行过程。
将上传的war文件移动到指定目录下
mv /home/.../project.war ./
mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
-f: 在mv操作要覆盖某已有的目标文件时不给任何指示;
---------------------------------
查看当前路径
pwd
查看目录 查找文件
ls 、dir 、 find 、 grep 、 cat 、 more
查看当前目录详情 ls -l , dir -l
查找后缀.sh文件 ls *.sh , find *.sh
查找C开头的文件 ls C*, find C*
find
find -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
find -size -1000k #查找出小于1000KB的文件
grep 【匹配的参数】【文件名】
-n:显示匹配行及行号。(grep -n 1 test.sh)
查找匹配内容的上下几行: grep 【查找匹配内容上下几行】【显示行号】【匹配的参数】【文件名称】(grep -2 -n 1 test.sh) 等同于 (grep -C 2 -n 1 test.sh)
查找匹配内容的后几行: grep -A 2 -n 1 test.sh(after)
查找匹配内容的前几行: grep -B 2 -n 1 test.sh(before)
cat 查看文件内容
more 查看文件内容
类似 cat 不过会以一页一页的形式显示,更方便使用者逐页阅读 而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h
Ctrl+F 向下滚动一屏
空格键(space) 向下滚动一屏
Ctrl+B 返回上一屏
查看当前时间
date -R
进入指定目录
cd XXX
返回上一级目录
cd ..
复制、重命名文件 cp, mv
cp
复制某个文件: cp 【文件名】 【需要复制到的路径】
复制并重命名某个文件: cp 【文件名】【需要复制到的路径+新的文件名】
mv
移动文件: mv /test1/file1 /test3/file2
重名名文件: mv test.txt wbk.txt
mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
-f: 在mv操作要覆盖某已有的目标文件时不给任何指示;
mv当前目录的文件直接输入文件名,如果要移动到当前目录的文件夹,比如当前目录的test文件夹就为: ./test
mv test.sh ./test(将test.sh移动到当前文件夹的test文件夹下)
删除XXX.sh文件: rm test.sh
删除文件而无需确认rm -rf test.sh
rm命令用于删除一个文件或者目录。
-r,-R:递归删除,将指定目录下的所有文件与子目录一并删除;
-f:不提示,强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-v:显示指令的详细执行过程。
创建XXX.sh文件: touch test.sh
创建文件夹: mkdir test
删除文件夹 :rm -rf 目录名字
rm命令默认删除文件,要删除文件夹需要加上 r
-d或–directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force 强制删除文件或目录。
-i或–interactive 删除既有文件或目录之前先询问用户。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
编辑XXX.sh文件: vi test.sh
运行XXX.sh文件: sh test.sh ./test.sh
运行XXX.py文件: ./XXX.py
---------------------------------
编辑文件内容: vi XXX
按ESC键 跳到命令模式
命令i 进入插入模式(等同于命令a键)
:e! 放弃所有修改,从上次保存文件开始再编辑
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
编辑文件内容·插入: 执行vi 命令后 输入 i(insert)
编辑文件内容·保存退出: ESC + w +q
编辑文件内容·不保存文件,退出vi: q:
编辑文件内容·不保存文件,强制退出vi: :q!
查找
在命令模式下 输入 / + 查找字符串 (/123) 按n查找下一个
修改
命令 r + 字母 ,修改当前光标为输入的【字母】
命令 s + 字母,删除当前光标字符,并将当前模式更改为 insert
命令 数字 + s + 字母,删除【数字】个字符,并将当前模式更改为 insert
命令 R + 任意输入,进入替换模式,后续字母输入将逐一替换原有文本,直至按下 Esc 键回退到命令模式。
删除:
命令 x ,删除光标所在位置的一个字母,并保持在命令模式。
命令 dw ,删除当前光标至行末的文本数据
命令 d + 0,删除当前光标至行首的文本数据
命令 dd ,删除光标所在的一整行,并保持在命令模式。(等同于命令D)(等同于命令 d + $ )
删除sh所有内容:
首先 在命令行模式输入G进入最后一行,然后输入【:1,.d】删除所有内容
注释
单行注释 #
多行注释:
<<'COMMENT'
...
COMMENT
在sh文件中 设置输出当前时间 例如:20190315-17:07:26 echo $(date +%Y%m%d-%H:%M:%S)
---------------------------------
linux定时任务
查看任务执行情况
crontab -l
crontab 在/etc文件夹下 /etc/crontab
修改crontab :
crontab -e
前面有5个 * 从左至右依次的含义:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
特殊书号的含义
星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。
逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
示例:
crontab -e 开始对crontab进行编辑
*/3 * * * * /test/test.sh >>/test/test.log 每隔3分之执行依次test.sh 并将日志输出到test.log里
保存后直接开始执行。
*/3 * * * * /test/test.sh >>/test/test.log 2>&1
2>&1 是将错误输出到标准输出,如果在控制台调试,也就是屏幕上,方便调试。
linux crontab不执行解决:
./test.sh 出现 Permission denied
执行命令: chmod 777 test.sh
实例:
使用crontab -e修改:
26 09 * * * /usr/local/test2/test.sh >>/usr/local/test2/test.log 2>&1
linux查看crontab 执行情况
tail -f /var/log/cron
查看日志 cat test.log
发现执行成功
sh:
#!/bin/bash
export LANG=en_US.UTF-8
sleep 2s
java -jar /usr/local/test2/test.jar
sleep 2s
echo 'start'
echo $(date +%Y%m%d-%H:%M:%S)
echo 'end'
---------------------------------
查看日志:tail -f ../logs/catalina.out
tail: -n 是显示行号;例子如下:
1、tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
tail -100f test.log 实时监控100行日志
2、tail -n 20 filename
说明:显示filename最后20行。
tail -n 10 test.log 查询日志尾部最后10行的日志;
(tail -n +10 test.log 查询10行之后的所有日志;)
3、tail -r -n 10 filename
说明:逆序显示filename最后10行。
4、tail -f catalina.out 查看tomcat实时日志
tail -n 200 -f catalina.out
tail -n 200 -f logs/catalina.out
---------------------------------
linux连接ftp
连接ftp并上传当前目录下的文件命令:
连接ftp 打开相应路径 使用mput 进行上传
ftp -n
open 【ip地址】
user 【username用户名】【password密码】
pass 认证密码
bin 使用二进制文件传输方式
cd /ETE/Test/100000/XXX/Test
prompt 设置多个文件传输时的交互提示
pwd
mput ETE_100000_XXX* 将文件传输至远程主机
quit
---------------------------------
使用ssh命令:
ssh命令用于远程登录上Linux主机。
常用格式:ssh [-l login_name] [-p port] [user@]hostname
更详细的可以用ssh -h查看。
不指定用户,默认使用root账户登录
ssh 192.168.1.11
指定用户:
ssh -l root 192.168.1.11
ssh root@192.168.1.11
如果修改过ssh登录端口的可以:
ssh -p 12333 192.168.1.11
ssh -l root -p 12333 192.168.1.11
ssh -p 12333 root@192.168.1.11
---------------------------------
scp上传和下载
从ssh服务器上下载文件:
命令: scp username@目标IP地址:/root/XXX/File.log【目标文件位置】 /root/XXX/test【下载到的文件位置】
通过scp命令 在本地连接 【目标IP地址】,找到 【目标文件的位置】,最后下载文件到本地的【下载到的文件位置】
使用scp命令上传 :
将当前目录的XXX.jar上传到指定服务器的指定目录中:
scp XXX.jar root@IP:/root/XXX/
命令进行上传到XXX指定文件夹 (输入上面命令后需要输入密码XXX )
---------------------------------
Linux解压命令:
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
tar -xzvf file.tar.gz //解压tar.gz
---------------------------------
查看linux系统:
cat /proc/version (Linux查看当前操作系统版本信息)
[root@HW-1 ~]# cat /proc/version
查看linux IP: ip addr
---------------------------------
RedHat防火墙:
查看防火墙状态:
[root@centos6 ~]# service iptables status
iptables:未运行防火墙。
开启防火墙:
[root@centos6 ~]# service iptables start
关闭防火墙:
[root@centos6 ~]# service iptables stop
防火墙关闭
在外部访问CentOS中部署应用时,需要关闭防火墙。
关闭防火墙命令:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
关闭开机自启动:systemctl disable firewalld.service
开启开机启动:systemctl enable firewalld.service
---------------------------------