Linux

image-20240704151958404

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 目录下。

image-20240423190123227

image-20240423191502758

解压

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;

image-20200621180920654

image-20240424171848352

定时备份

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

img

img

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

×

喜欢就点赞,疼爱就打赏

相册 说点什么