缩写 | 全名 | 中文名 |
---|---|---|
LVS | Linux Virtual Server | Linux虚拟服务器 |
IPVS | IP Virtual Server | IP虚拟服务器 |
VRRP | Virtual Router Redundancy Protocol | 虚拟路由冗余协议 |
d | daemon | 守护进程 |
CentOS基础环境
yum install epel-release #yum安装提示“没有可用软件包”,更新epel第三方软件库
yum install htop
yum install wget
yum install net-tools
yum install dos2unix, dos2unix test.sh #再次执行就不会出现问题了
yum install tree #http://mama.indstate.edu/users/ice/tree
yum install lsof
yum install -y libnl* libnfnetlink-devel
yum install -y gcc gcc-c++
yum install -y openssl openssl-devel
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum remove keepalived
Ubuntu基础环境
apt-get install htop
apt-get install lsof
apt-get install unzip
apt-get install tree
apt-get install gcc
apt-get install libpcre3-dev
apt-get install zlib1g-dev
apt-get install libssl-dev
apt-get install make
安装Java
mkdir -p /usr/local/java
tar -zxvf jdk-8u201-linux-x64.tar.gz
安装Nginx
cd /usr/local/nginx
tar -zxvf nginx-1.20.1.tar.gz
cd /usr/local/nginx/nginx-1.20.1
./configure
make install
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-stream=dynamic
make
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp /usr/local/nginx/nginx-1.20.1/objs/nginx /usr/local/nginx/sbin/
cd ..
./sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
cd /usr/local/nginx/sbin
./nginx
ps -ef | grep nginx
安装Tomcat
mkdir -p /usr/local/tomcat
tar -zxvf apache-tomcat-8.5.23.tar.gz
cd /usr/local/tomcat/apache-tomcat-8.5.23/bin
./startup.sh #启动服务
./shutdown.sh #关闭服务
安装Maven
mkdir -p /usr/local/maven
tar -zxvf apache-maven-3.6.1-bin.tar.gz
maven的settings.xml文件中设置<server>标签
<server>
<id>nexus</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>123456</password>
</server>
mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
环境配置
vi /etc/hostname 修改主机名
vi /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
vi /etc/profile
if [ "$PS1" ]; then
if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
#java
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
#maven
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1
export PATH=${MAVEN_HOME}/bin:$PATH
#go
export GOROOT=/usr/local/go
export GOPATH=${GOROOT}/gopath
export PATH=${GOROOT}/bin:$PATH
#ffmpeg
export FFMPEG_HOME=/usr/local/ffmpeg/ffmpeg-4.2
export PATH=${FFMPEG_HOME}/bin:$PATH
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
source /etc/profile
java -version
mvn -version
NFS
#查看是否安装nfs服务
rpm -qa | grep nfs
rpm -qa | grep rpcbind
#安装nfs
apt-get install nfs-common #ubuntu
yum -y install nfs-utils rpcbind #centos
#启动rpc服务
systemctl start rpcbind.service
#启动nfs服务
systemctl start nfs.service
#服务端修改文件
/etc/exports
#添加
/data_store/file 192.168.0.3(insecure,rw,sync,no_root_squash)
#重启nfs服务
systemctl restart nfs.service
#客户端创建挂载目录
mkdir /data_store_file
mount -o rw -nolock -t nfs 192.168.0.3:/data_store/file /data_store_file
常用命令
curl 1058s.cn
wget https://jd1.1058s.cn/download/nginx-1.20.1.tar.gz
-----------------------------------
du -sh #当前目录大小
du -sh tomcat #指定目录大小
du -h --max-depth=1 * #当前目录深度大小
du -h --max-depth=1 tomcat #指定目录深度大小
-----------------------------------
mkdir /data_vdb1
mount /dev/vdb1 /data_vdb1#将云硬盘/dev/vdb1挂载到/data_vdb1
umount /data_vdb1 #解除挂载
df -hT
-----------------------------------
ps -ef | grep java #查看java进程
ps aux | grep java
kill -9 `ps -ef | grep tomcat | awk '{print $2}'`
lsof -i:1099
lsof -i | grep 1099
lsof |grep deleted
ll /proc/9001/cwd #查看服务安装路径
-----------------------------------
cat /proc/cpuinfo | grep -c processor #查看cpu核数
-----------------------------------
opt目录下 lsof -w | grep deleted
进入虚拟文件系统对应进程目录(cd /proc/23916/fd),将僵尸文件清空
-----------------------------------
htop、top、free -h #查看资源利用
ls 或 ll #查看目录
cd usr/local #进入目录
-> mkdir test #建目录
-> cd test #进入目录
-> touch abc.txt #新建
-> vi abc.txt #查看
-> i #编辑
-> ESC #退出编辑
-> :wq! 或 :q! #退出
-> cat abc.txt #查看
-> tar -czvf my.tar.gz . #gzip压缩
-> rm abc.txt #删除文件
-> tar -xzvf my.tar.gz #解压缩
-----------------------------------
echo hello > abc.txt #追加
tar -cjvf my.tar.bz2 . #bzip2压缩
./startup.sh #执行
chmod 777 abc.txt #修改文件权限
chmod +x /usr/local/bin/docker-compose
shutdown -r now #重启
shutdown -h now #关机
mv -r /usr/local/upload/ /usr/local/upload2/ #移动文件夹到新文件夹
cp -r /usr/local/a/ /liu_lei/ #拷贝文件夹到新文件夹下
cp -r /usr/local/a/* /liu_lei/ #拷贝文件夹下的文件到新文件夹下
rm -rf tomcat #删除目录和文件
rm * -r #清空当前文件夹
-----------------------------------
tar -cvf demo.tar demo/ #压缩
tar -xvf demo.tar #解压缩
-----------------------------------
unzip -t AdminLTE-2.4.3.zip
unzip AdminLTE-2.4.3.zip -d AdminLTE-2.4.3
-----------------------------------
lsattr bioser
chattr -a bioser
chattr -i bioser
-----------------------------------
netstat -ntlp #查看TCP端口
netstat -ntulp | grep 8080 #查看指定端口
netstat -pnt | grep :80 |wc #查看指定端口连接数量
netstat -nlp | grep java | sort -k3
netstat -nlp | grep java | sort -k6
-t : 指明显示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
-n : 不进行DNS轮询,显示IP(可以加速操作)
-----------------------------------
tree -Cd #色彩+目录
tree -CDts #色彩+更改时间+倒序+大小
-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
-----------------------------------
crontab -l
crontab -e
*/15 * * * * ntpdate 192.168.0.1
-----------------------------------
snmpwalk -v 2c -c community_read 10.101.98.241 .1.3.6.1.4.1.2011.6.3.5.1.1
防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
或
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd -reload
firewall-cmd --zone=public --list-ports
虚拟机无法联网
ip addr
cd /etc/sysconfig/network-scripts
vim ifcfg-eno16777736,修改ONBOOT=yes
service network restart
rpmdb open failed 解决办法
error: rpmdb: BDB0113 Thread/process 9347/140177798391872 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
解决办法:
cd /var/lib/rpm
ls
rm -rf __db*
rpm --rebuilddb
开机自启
/usr/lib/systemd/system/nginx.service
/usr/lib/systemd/system/keepalived.service
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking #forking后台运行
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]
Description=Keepalived service
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/keepalived.pid
ExecStart=/usr/local/keepalived/sbin/keepalived -D
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload 重新加载
systemctl enable nginx.service 设置开机自启动
systemctl disable nginx.service 停止开机自启动
systemctl start nginx.service 启动服务
systemctl stop nginx.service 停止服务
systemctl restart nginx.service 重新启动服务
systemctl status nginx.service 查看服务当前状态
systemctl list-units --type=service 查看所有服务
开机自启
vim /etc/rc.local
#添加
cd /usr/local/app && ./xxx.sh
cd /usr/local/app && ./yyy.sh
exit 0
chmod +x /etc/rc.d/rc.local #可能需要
去除Windows换行符
sed 's/\r//' -i xxx.sh
或
dos2unix xxx.sh
统计所有文件行数
#统计所有文件行数
find . "(" -name "*" ")" -print | xargs wc -l
#统计指定类型文件行数
find . "(" -name "*.java" -or -name "*.html" -or -name "*.js" -or -name "*.css" ")" -print | xargs wc -l
#统计指定类型文件行数(不含空行,只输出总行数)
find . "(" -name "*.java" -or -name "*.html" -or -name "*.js" -or -name "*.css" ")" -print | xargs grep -v "^$" | wc -l
网络维护
dstat -tnf 10
iftop -i eth0
nethogs -a -d 10
nload eth0
中文文件名乱码
yum install -y convmv
convmv -f gbk -t utf-8 -r --notest /client_document/
sshd
/etc/ssh/sshd_config
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,diffie-hellman-group14-sha1
HostKeyAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512,ssh-rsa
PubkeyAcceptedKeyTypes ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512,ssh-rsa
systemctl restart sshd