ubuntu
**1.防火墙的打开 关闭 **
sudo ufw enable , sudo ufw disable
2.防火墙的重启
sudo ufw reload
3.打开想要的端口(以9000为例)
ufw allow 9000
4.设置权限
sudo chmod -R 777 文件或文件夹的名字
sudo docker ps
$ sudo docker exec -it 775c7c9ee1e1 /bin/bash
Centos7
常用命令
yum centos的默认安装工具
tail:查看文件结尾,默认10行
tail -f 用于实时查询linux下的日志文件
ls -lr /usr/bin/java 显示/usr/bin/java目录下详细x
yum install lrzsz 安装rz命令
查看内存情况
free -h
查看运行中得进程内存占用
ps -aux
查看CPU占用前10
ps aux --sort=-pcpu | head -10
查看内存占用前10
ps aux --sort -rss | head -10
日志文件置空
cp /dev/null /installed/jar/nohup.out
线上debug,socket通信端口6,dev运行环境
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6558 -jar jeepay-payment.jar --spring.profiles.active=dev
app目录设置777权限
chmod -R 777 /app/*
切换用户appuser
chown -R appuser:appuser *
SCP 和 rsync
1.远程从服务器A拷贝文件到服务器B
命令 scp -r 要拷贝的文件目录 root@目标服务器IP:/拷贝之后存放目录
scp -r /apps/ root@150.158.103.96:/apps
从本地复制到远程服务器 --progress 显示进度信息
rsync -av local_folder remote_username@remote_ip:remote_folder_pwd
rsync -av /apps/root@150.158.103.96:/apps
从远程服务器复制到本地
rsync -av remote_username@remote_ip:remote_folder_pwd local_folder
rsync -av root@v0710.top:/apps /apps
暂停任务
ctrl+z
查看系统中当前的任务列表及其运行状态
jobs
输入 bg %1,将进程号为1的进程恢复到后台运行
bg %1
disown -h %n #n为作业号,%%代表当前job
disown -h %1 //将这个作业忽略HUP信号
然后根据提示输入服务器密码即可进行复制。
意思:把192.168.243.128 服务器上 docker-demo.tar 文件远程复制到 192.168.243.129 服务器上并存放在 /usr/local 目录下
2.从远程服务器拉取文件到本地
sshpass -p root scp root@192.168.243.129:/usr/local/test /usr/local/
意思:执行命令的机器为192.168.243.128,拉取129 服务器上面的 /usr/local/test 文件到 192.168.243.128服务器并存放到 /usr/local 目录下。
解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
软连接
ln [参数] [源文件或目录] [目标文件或目录类似于快捷链接]
-i 交互模式,文件存在则提示用户是否覆盖。
-s 软链接(符号链接)。
-d 允许超级用户制作目录的硬链接。
-b 删除,覆盖以前建立的链接
vim
ctrl+s 锁屏 ctrl+q 解屏
按下esc退出编辑
:wq 保持退出
:q 不保存退出
开放及查看端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口
firewall-cmd --reload # 配置立即生效
firewall-cmd --zone=public --list-ports # 查看防火墙所有开放的端
firewall-cmd --state # 查看防火墙状态
firewall-cmd --query-port=5011/tcp # 查看端口是否开启 yes 表示已开启 no表示未开启
systemctl stop firewalld.service # 停止firewall
systemctl disable firewalld.service # 禁止firewall开机启动
# 查看端口
netstat -lnp|grep 5000
netstat -lnp|grep nginx
netstat -ntlp | grep 80
lsof -i:1004
#查看端口占用
netstat -ntlp
# 查找指定进程格式
ps -ef | grep 进程关键字
jps
用来查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。
MYSQL
清理MYSQL
rpm -qa | grep mysql
#可能的显示情况如下
#mysql-community-libs-8.0.12-1.el7.x86_64
#mysql80-community-release-el7-1.noarch
#mysql-community-client-8.0.12-1.el7.x86_64
#mysql-community-common-8.0.12-1.el7.x86_64
#mysql-community-server-8.0.12-1.el7.x86_64
#通过下面的命令进行删除
yum remove mysql-xxx-xxx-
......
#查找mysql的相关文件
find / -name mysql
#根据自身的需求删除mysql的配置文件信息
rm -rf /var/lib/mysql
mysqldump -uroot -pm --all-databases > /app/sqlBack/dbAll`date +%Y-%m-%d_%H%M%S`.sql
cd /app/sqlBack/
rm -rf `find . -dbAll'*.sql' -mtime 10` #删除7天前的备份文件
执行定时任务
crontab -e
# 添加
00 22 * * * . /etc/profile;/bin/sh /apps/sqlBack/dbBackUp.sh
查看已有定时任务
crontab -l
删除所有定时任务
crontab -r
执行定时任务
查看crond 状态
systemctl status crond
安装MYSQL8
# 配置Mysql 8.0安装源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 安装Mysql 8.0
sudo yum --enablerepo=mysql80-community install mysql-community-server
#如果安装失败 报错:公钥尚未安装 执行如下命令 后重新安装
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
#启动MySQL服务:
systemctl start mysqld.service
systemctl restart mysqld.service
#查看MySQL服务:
systemctl status mysqld.service
#查看MySQL是不是开机自启,可以执行命令查看开机自启列表
systemctl list-unit-files|grep enabled
#启动成功后可以查看初始化密码随机生成的
cat /var/log/mysqld.log | grep password
#登录
mysql -u root -p
# 设置密码 字母+数字+下划线 等 @V0710.top_123
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
# 重新登录设置密码校验规则
# 用户名检查,用户名和密码不能相同
# 验证密码的复杂程度
# 密码的最小长度
set global validate_password.check_user_name=off;
set global validate_password.policy=0;
set global validate_password.length=4;
# 设置开机启动
systemctl enable mysqld
systemctl daemon-reload
# yum安装的mysql配置文件
vi /etc/my.cnf
skip-grant-tables
# 开启远程连接
update user set host="%" where user="root"
创建用户:create user 'root'@'%' identified by 'password';
开启权限:grant all on *.* to 'root'@'%';
刷新权限:flush privileges;
定时备份
1,创建sh文件 autoSql.sh
2,写入如下
#!/bin/bash
time=` date +%Y%m%d%H%M%S `
# 路径
dir=/apps/db-bak
mkdir -p $dir
USER="账户"
PASSWORD="密码"
#Host="127.0.0.1"
databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump -u $USER -p$PASSWORD --databases $db > ${dir}/${time}.$db.sql
# gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done
3,执行赋予权限
chmod +x autoSql.sh
4,定时每周一执行
#方案一执行如下命令(把命令输入到/apps/crontab文件下,然后重启crond)
echo " 0 0 * * 1 root /apps/autoSql.sh" >> /apps/crontab
systemctl restart crond
#方案二 执行如下命令 执行文字编辑器来设定
crontab -e
#输入
0 0 * * 1 root /apps/autoSql.sh
5,列出定时任务
crontab -l
6,删除定时任务
crontab -e
删除内容即可
每分钟执行一次命令:*/1 * * * * 或者 * * * * *
每小时执行一次
0 * * * * /bin/bash /apps/blog-3x/pull.sh
/bin/bash指定使用Bash来执行脚本
/apps/blog-3x/pull.sh是你编写的脚本的完整路径。
保存并退出编辑器,cron会自动加载新的定时任务。
https://www.yisu.com/ask/33455127.html
https://www.bilibili.com/read/cv29071818/
查看日志
过滤日志
grep -n "message" server.log
-n : 显示过滤出来的文本在文件内的行号
-R : 递归查询(重要)
-C :显示匹配到的数据的前后各n行
监控server.log日志件,并查看含有'foo'关键字的前后5行:
tail -f server.log|grep 'listMyMeetings' -C 5
或
tail -f server.log|grep 'listMyMeetings' -5
通过-f参数,我们可以实时查看文件的新增内容
tail -f server.log
筛选关键字打印的日志
tail -fn 1000 server.log | grep 'listMyMeetings'
cat -n server.log |grep "listMyMeetings"
使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
cat -n core-server|grep "listPatrolAbnormalReport" >111.txt
按日期查看
sed -n '/2020-09-01 12:10:21/,/2020-09-01 14:18:44/p' server.log
上面的两个日期必须是日志中打印出来的日志,否则无效
结合grep一起使用(比如我要找到超时的日志)
sed -n '/2020-09-01 12:10:21/,/2020-09-01 14:18:44/p' server.log | grep 关键字
find 准确查找
find /etc/ -name "sshd_config"
find 模糊查找
find /etc/ -name "sshd*"
带条件查找目录
find /etc/ -type d -name "console*"
带条件查找文件
find /etc/ -type f -name "sshd*"
jdk8
Ubuntu安装
一、命令行安装jdk1.8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version
二、安装包安装
1、创建jdk安装文件夹
mkdir java
将压缩包拷贝到ubuntu系统 usr/local/java中并解压
tar -zxvf jdk-8u301-linux-x64.tar.gz
2、设置环境变量
作用于所有用户:vim /etc/profile
在最下方加上以下代码
export JAVA_HOME=/usr/local/java/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH
3、使修改的配置立刻生效 source /etc/profile
4、检查是否安装成功
java -version
yum安装
yum install java-1.8.0-openjdk* -y
文件包安装
# 编辑
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
# 生效
source /etc/profile
jar后台运行
nohup java -jar yftools-0.0.1-SNAPSHOT.jar >> /home/yifan/temp.log 2>&1 &
# 只输出错误信息到日志文件
nohup java -jar wishTree.jar > web.log 2>&1 &
<!-- 杀死原来的进程 -->
<command>pkill -f test.jar</command>
<!-- 重新启动test.jar,程序的输出结果写到nohup.out文件中 -->
# 查找进程结束进程
ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
Nginx
# yum安装
sudo yum install nginx
# 启动
systemctl start nginx
systemctl restart nginx
# 停止
systemctl stop nginx
# 查看状态
systemctl status nginx
# 后台
ps -ef |grep nginx
# 访问
ip:80
# 安装目录
/etc/nginx/nginx.conf
# 日志文件
/var/log/nginx
# 配置文件生效
nginx -s reload
访问不了403问题
可能是路径问题(必须存在),可能是权限问题 chmod -R 777 设置即可
Redis
# 安装
yum install redis
# 卸载
yum remove redis
rpm -qa | grep redis
# 启动
systemctl start redis
# 重启
systemctl restart redis
# 查看状态
service redis status
systemctl status redis
# 设置开机自启
chkconfig redis on
# 进入Redis服务
redis-cli 或者 ./redis-cli 或安装包启动 ./redis-server /usr/local/redis-5.0.14/redis.conf
# redis的配置文件
vi /etc/redis.conf
# 绑定的ip 要注释
bind 127.0.0.1
# 保护模式 改为 protected-mode no
protected-mode no
# 以守护进程的方式运行默认no 改为 yes 改为yes会使配置文件方式启动redis失败
daemonize yes
# 设置redis密码 进入redis中
config set requirepass '123456'
# 登录
auth 123456
# 关闭redis
shutdown
# 清空当前数据库中的所有 key
flushdb
# 查看所有key
keys *
配置完成后重启redis服务
服务器中安全组的端口开启6379
Node
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
设置nvm自动运行
echo "source /nvm/nvm.sh" >> /.bashrc
重新加载用户配置
source ~/.bashrc
export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist
command -v nvm //验证安装
安装PM2
npm install pm2 -g
显示版本
pm2 -v
启动服务
pm2 start xxx.js
RocketMQ搭建
1,mq windons搭建
下载:https://rocketmq.apache.org/zh/download/
配置:
安装目录中不可加空格
runservice.cmd set "JAVA_OPT=%JAVA_OPT% -cp 修改为 set "JAVA_OPT=%JAVA_OPT% -cp "%CLASSPATH%""
runbroker.cmd set "JAVA_OPT=%JAVA_OPT% -cp 修改为 set "JAVA_OPT=%JAVA_OPT% -cp "%CLASSPATH%""
环境变量:
变量名:ROCKETMQ_HOME
变量参数:D:\rocketmq-4.9.3 #自己本地的rocketmq地址
启动:
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
2,可视化控制台搭建
下载:https://github.com/apache/rocketmq-dashboard
配置:
application.properties 配置中
rocketmq.config.namesrvAddr=127.0.0.1:9876 #改为eRocketMQ服务地址
启动:
D:\Program Files\rocketmq-dashboard-master\target
mvn clean package -Dmaven.test.skip
java -jar /app/rocketmq/rocketmq-dashboard.jar >> /app/rocketmq/rocketmq-dashboard.log 2>&1 &
问题
org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <172.17.0.1: 10911>
failed
解决方案
编辑 /conf/broker.conf
在conf文件中加入两行(建议直接复制,然后再修改为自己的IP),一定是大写IP!!!!!
namesrvAddr=127.0.0.1:9876
brokerIP1=192.168.0.106
Windows安装RabbitMQ
下载 RabbitMQ
使用RabbitMQ 得安装 erlang
配置 erlang 环境变量
D:\env\erl-24.1\bin 到 path 中
cmd D:\env\rabbitmq-3.9.10\rabbitmq_server-3.9.10\sbin
启动
rabbitmqctl start_app
停止
rabbitmqctl stop_app
查看状态
rabbitmqctl status
需要页面访问
rabbitmq-plugins enable rabbitmq_management
关闭
rabbitmq-plugins disable rabbitmq_management
默认账号密码
guest
Docker安装RabbitMQ
#查看MQ是否存在
docker search rabbitmq:management
#将镜像下载下来
docker pull rabbitmq:management
#发布docker镜像
docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
#设置web页面登录账户密码,不设置默认为 guest
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin
#访问页面
http://106.12.214.8:15672
#使用延迟队列时会报错
#method<connection.close>(reply-code=503, reply-text=COMMAND_INVALID - unknown exchange type 'x-delayed-message',
#安装延迟队列插件
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
#查看运行的docker容器
docker ps
#拷贝插件到rabbitmq容器 CONTAINER ID 中
#上传到服务器的/home/soft/文件夹下,然后进行如下操作
docker cp /home/soft/rabbitmq_delayed_message_exchange-3.8.0.ez 773067241f96:/plugins
#进入容器
docker exec -it 773067241f96 /bin/bash
#启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
#查看插件
rabbitmq-plugins list
#退出docker容器
exit
#重新启动容器
docker restart 773067241f96
Nacos
#下载安装包
https://github.com/alibaba/nacos/releases
#解压
tar -zxvf
#修改配置文件
conf/nacos-logback.xml
修改logger中得INFO值为ERROR
因为nacos每5秒就会心跳一次,防止日志过多
nohup sh startup.sh -m standalone &
Ubantu SFTP安装
sudo apt update
sudo apt install openssh-server
# 删除用户
sudo userdel user1
# 删除用户组
sudo groupdel sftp-users
# 给用户user1设置密码
passwd user1
useradd -d /installed/vsftp -m user1
sudo addgroup ssh-users
# -a 表示以追加形式将 user1 加入 ssh-users
sudo usermod -a -G ssh-users user1
# 创建监狱目录
sudo mkdir /installed/vsftp
# 设置共享文件夹的拥有者为管理员、用户组为 sftp-users
sudo chown user1:sftp-users /installed/vsftp
# 拥有者、sftp用户组的成员具有一切权限
sudo chmod 777 /installed/vsftp
# 重新读取ssh
service ssh reload
# cmd连接
sftp -oPort=22 user1@ip
sftp默认端口22
cat /etc/passwd 查看系统用户
/sbin/nologin 与 /bin/bash 更改用户是否可ssh登录
usermod -s /sbin/nologin + 用户名
usermod -s /bin/bash + 用户名
sudo apt update
sudo apt install openssh-server #默认选项
#建立用户组
sudo groupadd sftp-users
#新建用户名为vsftp的用户
sudo useradd -g sftp-users -m vsftp
#如果该用户已存在移入到sftp-users组中
usermod –g sftp_users vsftp
# -a 表示以追加形式将 vsftp 加入 ssh-users
sudo usermod -a -G ssh-users vsftp
# 创建监狱目录
sudo mkdir /installed/vsftp
# 设置共享文件夹的拥有者为管理员、用户组为 sftp-users
sudo chown user1:sftp-users /installed/vsftp
# 拥有者、sftp用户组的成员具有一切权限
sudo chmod 777 /installed/vsftp
# 修改配置文件
sudo vim /etc/ssh/sshd_config
# 在sshd_config文件的最后,添加以下内容
AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /installed/vsftp
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
AllowGroups ssh-users sftp-users:只允许ssh-uers及sftp-users通过SSH访问系统。
Match Group sftp-users:针对sftp-users用户,额外增加一些设置。
ChrootDirectory /home/sftp_root:将/home/sftp_root设置为该组用户的系统根目录,因此它们将不能访问该目录之外的其他系统文件。
AllowTcpForwarding no和X11Forwarding no:禁止TCP Forwarding和X11 Forwarding。
ForceCommand internal-sftp:强制该组用户仅仅使用SFTP。
# 重新读取ssh
service ssh reload
或
systemctl restart sshd.service
# cmd连接
sftp -oPort=22 user1@ip
sftp默认端口22
Git
解决linux服务器上使用git拉取代码时每次都要输入账户密码的问题
在linux中输入:
git config --global credential.helper store
日夜颠倒头发少 ,单纯好骗恋爱脑 ,会背九九乘法表 ,下雨只会往家跑 ,搭讪只会说你好 ---- 2050781802@qq.com