一个小白的运维入门自学之路
一个小白的运维入门自学之路一、安装centos7二、安装jdk/tomcat/nginx/mysql(1)jdk安装(2)tomcat安装(3)nginx安装(4)mysql安装三、linux命令(目前大概用过的)四、tomcat(1)tomcat相关命令(2)tomcat相关知识点1、部署多个tomcat(一)、修改环境变量 修改/etc/profile文件(二)、修改tomcat/conf/s
一个小白的运维入门自学之路
一、安装centos7
首先安装VM虚拟机,安装centos7。
VM10网盘下载地址:链接:VM下载地址 提取码:z3px;
centos下载地址:centos下载;
VM和centos7的教程可以自行百度,在此仅提供两个网址;
VM安装教程:安装教程(上方VM压缩包内带了序列号);
centos7安装教程:centos安装
二、安装jdk/tomcat/nginx/mysql
(1)jdk安装
- 1.首先查看系统自带的jdk。命令:
rpm -qa | grep java
打对号的四个就是系统自带的
- 删除自带的jdk。命令:
rpm -e --nodeps XXXX
通过截图可以看出已经被删除
- 创建jdk安装目录(该/usr/java 目录是空的,在该目录下打开终端,运行下载jdk的命令)。命令:
mkdir -p /usr/java/
- 命令下载jdk包 (需要联网,下载也需要点时间)
本章使用的为后缀为tar.gz的文件(不需要安装),如jdk-8u131-linux-x64.tar.gz。 命令:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
注意:如果上面wget命令不能用,报错:-bash: wget: command not found。执行一下该命令(安装依赖包)yum -y install wget
注意 : 记住需要加上:–no-check-certificate --no-cookies --header “Cookie: oraclelicense=accept-securebackup-cookie” 这段是为了避开用户验证用的 - 解压
tar -zxvf jdk-8u131-linux-x64.tar.gz
- 配置环境变量
vim /etc/profile
在最后一行添加
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 退出文件,保存 按Esc键 输入:wq 保存并退出
- 让配置文件生效
source /etc/profile
- 查看是否配置成功
java -version
- 若打开另一终端无法使用命令 需要配置永久环境变量,修改etc目录下的bashrc文件,在最前面添加
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然后使用source /etc/bashrc然后永久环境变量就可以生效啦
(2)tomcat安装
第一步: 下载Tomcat8压缩包(虚拟机浏览器下载的文件在)
第二步:找见下载的压缩包,一般在Downloads中,解压tar zxvf apache-tomcat-8.5.50.tar.gz
(3)nginx安装
- 安装gcc:
yum install gcc-c++
- 安装PCRE库:
yum install -y pcre pcre-devel
- 安装zlib库:
yum install -y zlib zlib-devel
- 安装openssl:
yum install -y openssl openssl-devel
- 下载源码包。https://nginx.org/
选择stable version(最新稳定版) - 解压
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-stream --with-http_ssl_module --with-file-aio --with-http_realip_module --with-threads --with-http_v2_module
make
make install
- 查看版本,进入nginx下的sbin目录,输入命令
./nginx -v
(4)mysql安装
三、linux命令(目前大概用过的)
- 右键打开终端默认在root目录下
- 进入该目录下某一目录:cd XXX/
- 进入某一目录:cd /XXX/XXX/XXX(绝对路径)
- 返回上一级目录:cd …
- 返回root目录:cd
- 列出目录内容:ls
- 创建文件:touch XXX
- 删除文件:rm XXXX
- 创建目录:mkdir XXXX(创建单级目录)|mkdir -p XXX/XXX/XXX(创建多级目录)
- 删除目录:rm -r XXX(有提示信息是否删除) rm -rf XXXX(无提示信息,直接删除)
- 移动当前文件夹下的所有文件到上一级目录:mv * …/
- 将文件a.txt重命名为b.txt:mv a.txt b.txt
- 将a文件移动到当前文件夹下的b目录:mv a b/
- 将a文件移动到其他文件夹下的b目录:mv a /XXX/XXX/b/(此目录为绝对路径)
- yum被锁时解决办法:rm -f /var/run/yum.pid
- 解压tar.gz命令:tar -zxvf FileName.tar.gz
- 压缩tar.gz命令:tar -zcvf FileName.tar.gz DirName
- 解压.zip 命令:unzip FileName.zip
- 压缩.zip 命令:zip FileName.zip DirName
- 启用网卡命令:ifconfig ens33 up
禁用网卡的命令:ifconfig ens33 down - 防火墙状态查询:systemctl status firewalld.service
防火墙状态关闭:systemctl stop firewalld.service
禁止防火墙服务器:systemctl disable firewalld.service - 查看应用是否安装:rpm -qa|grep XXXXX
- 查看应用位置:which XXXX
- 查找文件位置:find / -name xxx
- 查看文件内容:cat XXXX
- 查看文件内容,可完全显示:more XXXX
- 查看文件的前多少行:head -number XXXX
- 查看文件的后多少行:tail -number XXXX
-
- 文件的rwx权限:
r:可以执行catch、more等读操作。
w:修改文件的内容等写操作,但是不代表你可以把这个文件删除。
x:对文件进行执行操作。 - 目录的rwx权限:
r:可读操作,可以列出目录的内容,比如ls命令。
w:表示可以在目录下创建或删除文件的权限。
x:表示可以进入这个目录(基本上所以的目录都会有rx权限)。
- 文件的rwx权限:
- 修改文件/目录权限
chmod [{ugo}{±=}{rwx}] [文件或目录]
chmod [mode=421] [文件目录]
例子:chmod g+w filename
chmod 761 filename - 根据文件名查找文件位置:find [搜索范围路径] -name 【文件名称】
- 显示当前所在位置:pwd
四、tomcat
(1)tomcat相关命令
- 开启:./startup.sh
- 关闭:./shutdown.sh
- 查看进程:ps -ef|grep tomcat
- 杀死进程:kill -9 进程号
- 准确获取tomcat进程号:ps -ef |grep tomcat|grep -v grep |awk ‘{print $2}’
(grep -v 意为不包括;上述语句的意思是查找除了grep下的所有信息;awk '{print $2}'意为取第二个字段输出)
(2)tomcat相关知识点
1、部署多个tomcat
(一)、修改环境变量 修改/etc/profile文件
##########first tomcat###########
CATALINA_BASE=/usr/local/tomcat/apache-tomcat-8.5.50
CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.50
TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.50
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
##########first tomcat############
##########second tomcat##########
CATALINA_2_BASE=/usr/local/tomcat-8081/apache-tomcat-8.5.50
CATALINA_2_HOME=/usr/local/tomcat-8081/apache-tomcat-8.5.50
TOMCAT_2_HOME=/usr/local/tomcat-8081/apache-tomcat-8.5.50
export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME
##########second tomcat##########
(二)、修改tomcat/conf/server.xml文件(修改地方)
(1)修改关闭监听端口 将<Server port="8005" shutdown="SHUTDOWN">改为 <Server port="9005" shutdown="SHUTDOWN"> 也可以改为其他的,但是不用冲突就可以
(2)<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
改为<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
也可以改为其他的,但是不用冲突就可以
(3)最后还要修改<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />改为<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
也可以改为其他的,但是不用冲突就可以
(三)、修改tomcat/bin中的catalina.sh文件添加运行目录
找到***# OS specific support. $var must be set to either true or false***在下面增加如下代码
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
$CATALINA_2_BASE根据第1步中的第二个tomcat配置而定。就是第1步中定义变量,在这里使用,所以名称一定要相同,也可以改成其他的自己定,保持相同就可以
2、tomcat上部署应用
(一)、idea打war包
参考博客 https://blog.csdn.net/c851204293/article/details/90517870
(二)、war部署到tomcat
1. war部署到tomcat先将war放置tomcat的webapps路径下
2. 然后修改conf文件夹下的service.xml文件
<Context docBase="" path="/" reloadable="true" privileged="true"/>
path 是虚拟路径;
docBase 是应用程序的物理路径;
privileged 设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet;
reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,可以在不重起tomcat的情况下,自动装载改变后的应用程序,实现热部署;
五、nginx
(1)、nginx命令
- 查看nginx命令:ps -ef|grep nginx
- 在/usr/local/nginx/sbin 下(/usr/local/nginx这是我nginx的安装目录,) 开启:./nginx
- 关闭:
从容停止:kill -quit 进程号
快速停止:kill -term 进程号 或 kill -int 进程号
强制停止:pkil -9 nginx
- 重新载入配置文件:在/usr/local/nginx/sbin 下
./nginx -s reload
- 重启 Nginx:
./nginx -s reopen
- 停止 Nginx:
./nginx -s stop
- 查看版本号,在/usr/local/nginx/sbin 下,
./nginx -v
- 检查配置文件nginx.conf的正确性命令:
./nginx -t
(2)、nginx相关知识点
(一)、nginx连接tomcat
1.修改配置文件:cd /usr/local/nginx/conf/ 编辑nginx.conf文件
server {
listen 80; //监听80端口
server_name zsq.test.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://zsq.test.com:8080;
}
}
server {
listen 80;
server_name zsq.test1.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://zsq.test1.com:8081;
}
}
2.修改/etc/hosts文件
ip地址 zsq.test.com
六、shell脚本
- #!/bin/sh (shell脚本第一行要写)
- echo相当于输出 例子:echo “this is example” (echo后面要加空格),将此命令保存至test.sh,运行该脚本前需要先是脚本具有执行权限,chmod +x ./test.sh;运行脚本:./test.sh
#!/bin/sh
echo "this is example"
- 定义变量:my_name=“aaa”(变量名和等号之间不能有空格)
命名规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
- 使用变量,在变量名前面加美元符号即可。
#!/bin/sh
my_name="aaa"
echo $my_name
echo ${my_name}
变量名外面的花括号是可选的,加不加都行,最好加上。
- 只读变量,使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
#!/bin/sh
myName="aaa"
readonly myName
- 删除变量,使用 unset 命令可以删除变量。
#!/bin/sh
myUrl="aaa"
unset myUrl
echo $myUrl
该脚本不会有输出
- 单引号:单引号内的字符串会原样输出,单引号字符串中的变量无效。单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
- 双引号:双引号里可以有变量,双引号里可以出现转义字符
- 传递参数:引用菜鸟教程
- 运算符:引用菜鸟教程
- if else(if后的条件每个符号或变量数字间都需要加空格,否则运行会报错,结尾要加一个if倒过来写fi) [ xx ]
#!/bin/sh
if [ 1 -eq 1 ]
then
echo "aaaaa"
else
echo "bbb"
fi
输出aaaaa
- if elif else(else if写法为elif)(此脚本需要传递参数,判断所传参数是否为文件夹,文件,或者均不是)
#!/bin/sh
if [ -d $1 ]
then
echo "is a directory!"
elif [ -f $1 ]
then
echo "is a file!"
else
echo "error!"
fi
更多运算符参考:引用菜鸟教程
- 输入/输出重定向:引用菜鸟教程
- 下载gitlab代码
git clone -b master(分支) http://用户名:密码@使用http的克隆url 代码要下载的位置;
- \cp -r和cp -r的区别,加上""不需要提示是否覆盖
- maven打包:
mvn clean package -Dmaven.test.skip=true
(-Dmaven.test.skip=true表示JUnit测试用例不编译也不执行) - sshpass 指定密码远程 ssh 到服务器 或者 scp 发送文件到服务器:
sshpass -p [password] scp [xxx文件] root@[port]:[url]
七、mysql
- 启动mysql:service mysqld start
- 关闭mysql:service mysqld stop
- 重启mysql:service mysqld restart
- mysql运行状态:service mysqld status或systemctl status mysqld.service
- 修改密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘xxxxxx’;
- 进入mysql命令行:mysql -uroot -p,然后输入密码
(1)、查找锁表
锁定表:lock table 表名 read;
解锁表:unlock tables;
show OPEN TABLES where In_use > 0;
(2)、查找慢sql
(1)在/etc/my.cnf 下的[mysqld]中修改
slow_query_log = on
slow-query-log-file = /var/log/mysql/test_slow_sql.log
long_query_time = 1
test_slow_sql.log文件不手动添加。
重启mysql
(2)查看一下当前的慢查询是否开启,以及慢查询所规定的时间,以及慢查询语句的log文件:
show variables like ‘slow_query_log’;
show variables like ‘slow_query_log_file’;
show variables like ‘long_query_time’;
(3)、mysql备份方式
- 先创建mysqlback.sh脚本,脚本内写如下内容
#!/bin/bash
#数据库IP
dbserver='127.0.0.1'
#数据库用户名
dbuser='root'
#数据密码
dbpasswd='xxxxx'
#数据库,如有多个库用空格分开
dbname='xxxxx'
#备份时间
backtime=`date +%Y%m%d`
#备份输出日志路径
logpath='/home/backup/'
echo "################## ${backtime} #############################"
echo "开始备份"
#日志记录头部
echo "" >> ${logpath}/mysqlback.log
echo "-------------------------------------------------" >> ${logpath}/mysqlback.log
echo "备份时间为${backtime},备份数据库表 ${dbname} 开始" >> ${logpath}/mysqlback.log
#正式备份数据库
for table in $dbname; do
source=`mysqldump -h ${dbserver} -u ${dbuser} -p${dbpasswd} ${table} > ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqlback.log;
#备份成功以下操作
if [ "$?" == 0 ];then
cd $logpath
#为节约硬盘空间,将数据库压缩
tar zcf ${table}${backtime}.tar.gz ${backtime}.sql > /dev/null
#删除原始文件,只留压缩后文件
rm -f ${logpath}/${backtime}.sql
#删除七天前备份,也就是只保存7天内的备份
find $logpath -name "*.tar.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
echo "数据库表 ${dbname} 备份成功!!" >> ${logpath}/mysqlback.log
else
#备份失败则进行以下操作
echo "数据库表 ${dbname} 备份失败!!" >> ${logpath}/mysqlback.log
fi
done
echo "完成备份"
echo "################## ${backtime} #############################"
- 添加定时任务
crontab -e 59 23 * * * /home/backup/mysqlbak.sh
(每天23.59运行脚本备份数据库)
更多推荐
所有评论(0)