目录
13.1 编辑/etc/ssh/sshd_config文件设置心跳,保持连接。
1.查看系统版本信息
lsb_release -a
2.获取前一天的时间
前一天的日期
date -d "1 day ago" +"%y%m%d"
前一个月的日期
date -d "1 month ago" +"%y%m%d"
类似的还有
date -d "-1 day ago 1 month ago" +"%y%m%d"
date -d "1 day ago -1 year ago 1 month ago" +"%y%m%d"
DAYDEL=`date -d "1 month ago" +%m%d` //一个月前的日期
3.tar打包压缩后删除源文件
tar -zcvf filename.tar.gz source --remove-files
4.查看服务pid
pgrep -l nginx
参数说明:
-l : 会显示命令和pid,如果不加这个参数就只会显示这个命令的pid
5.转储和查看TCP状态信息
ss -nutl
6.给命令其别名
vim ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -lh --color=auto'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
编辑完成之后保存 source ~/.bashrc
原文参考:Linux 命令别名,让alias永久生效 - jack_Meng - 博客园
7.客户端免密传输文件到服务器
1.创建公钥
ssh-keygen.exe -t rsa -P "password"
2.服务器配置
进入到当前用户下.ssh目录
# 进入当前用户的.ssh目录
cd ~/.ssh
# 追加客户端公钥到authorized_keys
cat id_rsa.pub >>authorized_keys
将id_rsa.pub上传到目标服务器,然后追加到authorized_keys文件中,如果没有authorized_keys文件就创建一个
3.免密传输测试
scp target_file user@ip:/dir
现在向服务器传输文件就不再需要密码了
原文参考:linux SCP免密传输文件_try2find的专栏-CSDN博客_scp 免密
8.通过端口号查询进程号
netstat -nlp|grep 9527
1. 使用lsof命令
# 不加换行符
lsof -i:9527 | grep "TCP" | head -n1 | awk '{printf("%d"), $2}'
# 加一个换行符
lsof -i:9527 | grep "TCP" | head -n1 | awk '{printf("%d/n"), $2}'
2. 使用netstat命令
# 不加换行符
netstat -ap | grep 9527 | head -n1 | awk '{printf("%d/n"), $7}' | awk -F/ '{printf("%d"), $1}'
@ 加换行符
netstat -ap | grep 9527 | head -n1 | awk '{printf("%d/n"), $7}' | awk -F/ '{printf("%d/n"), $1}'
这样可以方便的写一个服务重启的脚本
restart.sh
port=`netstat -nlp | grep 9527 | head -n1 | awk '{printf("%d/n"), $7}' | awk -F/ '{printf("%d"), $1}'`
kill -9 ${port}
sh start.sh
start.sh
mv catalina.log catalina.log.bak
nohup java -jar delivery-0.0.1-SNAPSHOT.jar >catalina.log 2>&1 &
9.crontab定时任务
1.查看定时任务
crontab -l
2.编写定时任务
crontab -e
每天2点定时打包日志
0 2 * * * nohup sh /data/scripts/ed_pro_log.sh /data/springboot-service/logs >> tar_springboot_log.log 2>&1 &
打包日志脚本
log_path=$1
curr_time=`date -d "1 day ago" +"%F"`;
today_path="${log_path}/${curr_time}";
tar -zcvf ${today_path}/${curr_time}.tar.gz ${today_path}/${curr_time}*.log --remove-files;
手动批量处理日志文件
log_path=$1
echo "start tar logs,log pash is ${log_path}";
td_time=`date +"%F"`;
ls -h ${log_path}/*.log|while read line;do temp=${line%-*}; echo ${temp##*/};done|uniq|grep -v ${td_time}|while read td_day;do tar -zcvf ${log_path}/${td_day}.tar.gz ${log_path}/${td_day}*.log --remove-files;done
原文参考:linux cron 定时任务_mengzuchao的专栏-CSDN博客_cron定时任务
10. 磁盘挂载
由于主机受到了网络攻击,所以重装了系统,相应的需要挂载磁盘
1.格式化磁盘
我不需要分区所以直接格式化后挂载
格式化命令如下
mkfs -t ext4 /dev/vdb
2.新建挂载目录
mkdir /data
3.将目录挂载到挂载点
mount /dev/vdb /data/
官网文档:初始化Linux数据盘(fdisk)_云硬盘 EVS_快速入门_步骤4:初始化数据盘_华为云
11.执行字符串命令
在编写shell脚本时候通常需要打印日志,包括整条命令的日志
所以需要将命令变成字符串打印然后再执行
# 将命令赋值给变量
scmd="nohup java -jar ${1} > ${log_file} 2>&1 &"
# 输出需要执行的命令
echo "${scmd}"
# 执行命令
${scmd}
12.修改主机名
12.1 临时生效
hostname xxx 修改完成后,只是临时生效,重启服务器后恢复原名。
12.2 永久生效
12.2.1 hostnamectl
Centos 7有名为 hostnamectl 的服务,可以通过hostnamectl set-hostname xxx 修改主机名。该命令修改后立即生效。/etc/hostname文件中也发生改变。
12.2.2 界面修改 nmtui
可以通过界面修改 nmtui 修改主机名 修改后也是立即生效。
12.2.3 修改/etc/hostname配置文件
该方式需要重启或者通过systemctl restart systemd-hostnamed.service重启服务生效。
原文链接:https://blog.csdn.net/m0_37642477/article/details/105444468
13.修改客户端连接时长
13.1 编辑/etc/ssh/sshd_config文件设置心跳,保持连接。
- 编辑/etc/ssh/sshd_config,添加配置项:
ClientAliveInterval 600 ClientAliveCountMax 10
ClientAliveInterval 600 表示每600秒发送一次请求, 从而保持连接。
ClientAliveCountMax 10 表示服务器发出请求后客户端没有响应的次数达到10次,就自动断开连接。
则无响应的SSH客户端将在大约600x10=6000秒后断开连接
ClientAliveInterval设置超时间隔(以秒为单位),在此间隔之后,如果尚未从客户端接收到任何数据,则sshd将通过加密的通道发送消息以请求客户端的响应。默认值为0,表示这些消息将不会发送到客户端。此选项仅适用于协议版本2。
ClientAliveCountMax设置客户端活动消息的数量,该消息可以在sshd接收不到来自客户端的任何消息的情况下发送。如果在发送客户端活动消息时达到此阈值,则sshd将断开客户端连接,从而终止会话。
客户端活动消息的使用与TCPKeepAlive有很大不同。客户端活动消息是通过加密通道发送的,因此不会被欺骗。由TCPKeepAlive启用的TCP keepalive选项是可欺骗的。
- 执行以下命令,重启sshd服务,使配置生效。
CentOS6操作系统
# service sshd restart
CentOS7/EulerOS操作系统
# systemctl restart sshd
使用Mobaxterm连接设置
原文参考:怎样长时间保持SSH会话连接不断开?_弹性云服务器 ECS_故障排除_SSH连接_华为云
【MobaXterm】设置保持SSH连接 - hitrjj - 博客园
14.查看磁盘大小
du --max-depth=1 -h /data/
原文参考: linux查看磁盘使用情况命令_程序员阿俊的博客-CSDN博客_linux查看磁盘使用情况
15.查看网络延迟
执行以下命令,查看数据包延迟情况
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<加速域名>"
其中:
- time_connect:连接时间,从开始到建立TCP连接完成所用的时间,单位为秒。
- time_starttransfer:开始传输时间。在客户端发出请求后,到后端服务器响应第一个字节所用的时间,单位为秒。
- time_total:连接总时间。客户端发出请求后,到后端服务器响应会话所用的时间,单位为秒。