Linux – 清风亦平凡 https://www.mlplus.net 关注IT世界,记录平凡生活 Wed, 19 Jul 2023 04:50:46 +0000 zh-CN hourly 1 https://wordpress.org/?v=6.4.3 Linux快速回收连接TIME-WAIT的连接 https://www.mlplus.net/2021/04/21/linuxtime-wait-recovery/ https://www.mlplus.net/2021/04/21/linuxtime-wait-recovery/#respond Wed, 21 Apr 2021 03:49:28 +0000 https://www.mlplus.net/?p=3448 发现Centos系统中出现了很多 TIME-WAIT的空闲连接,连接资源感觉即将耗尽,并且这些TIME-WAIT释放缓慢。

Linux快速回收连接TIME-WAIT的连接-第0张图片

配置修改


vi /etc/sysctl.conf

编辑文件,加入以下内容:


# 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_syncookies = 1

# 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1

# 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1

# 修改系統默认的TIMEOUT时间
net.ipv4.tcp_fin_timeout = 30 

执行以下指令,让新增的配置生效.


/sbin/sysctl -p

完成修改之后,使用以下命令查看TIME_WAIT连接数


netstat -ant |grep “TIME_WAIT” |wc -l



转载请注明:清风亦平凡 » Linux快速回收连接TIME-WAIT的连接

]]>
https://www.mlplus.net/2021/04/21/linuxtime-wait-recovery/feed/ 0
Docker容器在Centos使用脚本查看日志与清理 https://www.mlplus.net/2021/04/10/dockercentoslogclear/ https://www.mlplus.net/2021/04/10/dockercentoslogclear/#respond Sat, 10 Apr 2021 05:04:36 +0000 https://www.mlplus.net/?p=3425 背景

jenkins突然无法自动构建镜像,经过确认并非是无法构建,而是磁盘空间满了。 关于手动清理Docker日志的方法,自己曾经也处理过,但是容器多起来就相当麻烦。

linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面, 以json.log结尾的文件.

查看


#!/bin/sh
echo "======== docker containers logs file size ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
ls -lh $log
done
Docker容器在Centos使用脚本查看日志与清理-第0张图片

清理


#!/bin/sh
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"

限制Docker容器日志大小

全局设置

新建/etc/docker/daemon.json,若是存在编辑即可。添加log-dirverlog-opts参数,示例如下:


# vim /etc/docker/daemon.json
{
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

max-size设置日志文件的大小的上线,max-file一个容器有多少个日志。

设置的日志大小,只对新建的容器有效.

// 重启docker守护进程
systemctl daemon-reload
systemctl restart docker

单个容器设置

通过配置容器docker-composemax-size选项来实现。


  consul-server-bootstrap:
    container_name: consul-server-bootstrap
    image: consul:latest
    logging: 
      driver: “json-file” 
      options: 
        max-size: “5g”

重新使用docker-compose运行即可完成最后设置。



转载请注明:清风亦平凡 » Docker容器在Centos使用脚本查看日志与清理

]]>
https://www.mlplus.net/2021/04/10/dockercentoslogclear/feed/ 0
Linux无法访问外网问题 https://www.mlplus.net/2020/11/16/linux-net-work/ https://www.mlplus.net/2020/11/16/linux-net-work/#respond Mon, 16 Nov 2020 13:30:23 +0000 https://www.mlplus.net/?p=3239 一台Linux局域网服务器,突然发现不能访问外网,也许本来就不行,因为没有用到外网,所以只是没有注意到吧!经过测试外网无法访问,内网畅行无阻。如下:

Linux无法访问外网问题-第0张图片

[root@offline-200 services]# wget baidu.com
–2020-11-03 17:56:58– http://baidu.com/
正在解析主机 baidu.com (baidu.com)… 失败:未知的名称或服务。
wget: 无法解析主机地址 “baidu.com”

[root@offline-200 services]# ping 192.168.2.3
PING 192.168.2.3 (192.168.2.3) 56(84) bytes of data.
64 bytes from 192.168.2.3: icmp_seq=1 ttl=128 time=0.305 ms
64 bytes from 192.168.2.3: icmp_seq=2 ttl=128 time=0.245 ms
64 bytes from 192.168.2.3: icmp_seq=3 ttl=128 time=0.211 ms
64 bytes from 192.168.2.3: icmp_seq=4 ttl=128 time=0.255 ms
64 bytes from 192.168.2.3: icmp_seq=5 ttl=128 time=0.353 ms
— 192.168.2.3 ping statistics —
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.211/0.273/0.353/0.053 ms
[root@offline-200 services]# ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=255 time=1.39 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=255 time=1.47 ms
64 bytes from 192.168.2.1: icmp_seq=3 ttl=255 time=1.43 ms
— 192.168.2.1 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.393/1.433/1.470/0.031 ms

首先,检查DNS服务器是否设置且是否设置正确。


cat  /etc/resolv.conf

如下所示,DNS只是一个局域网的服务器。具体之前为什么这么设置,现在也搞不清楚。

Linux无法访问外网问题-第1张图片

[root@offline-200 services]# cat /etc/resolv.conf
Generated by NetworkManager
search host.com
nameserver 192.168.2.200

不管之前是什么原因,现在使用vi进行编辑新加两个DNS服务器。

cat /etc/resolv.conf

#阿里DNS服务器

nameserver 223.5.5.5

nameserver 223.6.6.6

Linux无法访问外网问题-第2张图片

[root@offline-200 services]# vi /etc/resolv.conf
[root@offline-200 services]# cat /etc/resolv.conf
Generated by NetworkManager
search host.com
nameserver 192.168.2.200
nameserver 223.5.5.5
nameserver 223.6.6.6

新加DNS服务器之后保存,测试访问外网通过。

curl  www.baidu.com
Linux无法访问外网问题-第3张图片



转载请注明:清风亦平凡 » Linux无法访问外网问题

]]>
https://www.mlplus.net/2020/11/16/linux-net-work/feed/ 0
Linux系统下使用split分割大文件 https://www.mlplus.net/2020/04/17/linuxsplitbigfile/ https://www.mlplus.net/2020/04/17/linuxsplitbigfile/#respond Fri, 17 Apr 2020 04:00:00 +0000 https://www.mlplus.net/?p=2715 split命令

split可以指定按行数分割和按字节大小分割两种模式。

语法

split [--help][--version][-d][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

参数

参数说明
-<行数>或-l<行数>指定每多少行就要切成一个小文件。
-b<字节>指定每多少字就要切成一个小文件。支持单位:m,k
-d分割使用数字后缀
-C<字节>与-b参数类似,但切割时尽量维持每行的完整性。
--help 显示帮助。
--version显示版本信息
--verbose显示分割进度

按行数

split -l 具体行数 -d  要分割的大文件  新文件名前缀

例如:

split -l 1000 -d  2020-04-17.log  new_file_prefix_

按字节大小

split -b 具体的字节大小 -d  要分割的大文件  新文件名前缀

例如:

split -b 500m -d  2020-04-17.log  new_file_prefix_ --verbose

合并

 cat命令

cat  文件名前缀 > 新文件名

例如:

cat new_file_prefix_* > merge_newfile.log
Linux系统下使用split分割大文件-第0张图片



转载请注明:清风亦平凡 » Linux系统下使用split分割大文件

]]>
https://www.mlplus.net/2020/04/17/linuxsplitbigfile/feed/ 0
Linux中退出vi编辑模式 https://www.mlplus.net/2020/02/24/linuxexitvi/ https://www.mlplus.net/2020/02/24/linuxexitvi/#respond Mon, 24 Feb 2020 01:00:00 +0000 https://www.mlplus.net/?p=2486 Linux中退出vi编辑模式-第0张图片

点击ESC进入“正常模式”,然后输入“:”,进入“命令模式”。此时屏幕的下方会出现一个冒号,你可以输入以下命令,并按“ENTER”执行:

  • :q 退出(:quit的缩写)
  • :q! 退出且不保存(:quit!的缩写)
  • :w 保存文件但不退出vi
  • :w file 将修改另外保存到file中,不退出vi
  • :w! 强制保存,不退出vi
  • :wq 保存并退出
  • :wq! 保存并退出即使文件没有写入权限(强制保存退出)
  • :x 保存并退出(类似:wq,但是只有在有更改的情况下才保存)
  • :exit 保存并退出(和:x相同)
  • :qa 退出所有(:quitall的缩写)
  • :cq 退出且不保存(即便有错误)



转载请注明:清风亦平凡 » Linux中退出vi编辑模式

]]>
https://www.mlplus.net/2020/02/24/linuxexitvi/feed/ 0
Linux下系统时间的修改 https://www.mlplus.net/2019/06/04/linuxupdatetime/ https://www.mlplus.net/2019/06/04/linuxupdatetime/#respond Tue, 04 Jun 2019 03:24:24 +0000 https://www.mlplus.net/?p=1723 Linux下系统时间的修改-第0张图片

修改时区

临时改时区

export TZ='Asia/Shanghai';

时区字符串可使用tzselect程序查看。

永久修改时区

CentOS

rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

Ubuntu

cat /etc/timezone
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

修改时间

将系统时间写入硬件(BIOS)时间

 date -s "2019-06-04 10:41:00"
hwclock –systohc

将硬件时间写入系统时间

hwclock --set --date "2019-06-04 10:41:00"
hwclock --hctosys

date 修改的是系统时间。

hwclock 修改的是BIOS时间。

设置硬件中保存UTC时间还是本地时间

hwclock --systohc --utc
hwclock --systohc --localtime



转载请注明:清风亦平凡 » Linux下系统时间的修改

]]>
https://www.mlplus.net/2019/06/04/linuxupdatetime/feed/ 0
Linux CentOS关闭防火墙 https://www.mlplus.net/2017/05/05/linux-centos-iptables/ https://www.mlplus.net/2017/05/05/linux-centos-iptables/#respond Fri, 05 May 2017 14:44:00 +0000 https://www.mlplus.net/?p=3562 永久开始/关闭防火墙

开启

chkconfig iptables on

关闭

chkconfig iptables off

临时关闭/开启

开启

service iptables start

关闭

service iptables stop
以上设置内容,重启后生效!



转载请注明:清风亦平凡 » Linux CentOS关闭防火墙

]]>
https://www.mlplus.net/2017/05/05/linux-centos-iptables/feed/ 0