运维部落

香港vps促销1G99元 点击购买 美国vps促销512M59元 点击购买 日本vps促销1G100元 点击购买

windows删除文件失败:提示源文件名长度大于系统支持的长度 的解决办法

2023年5月1日 没有评论

现象:

删除文件失败,提示源文件名长度大于系统支持的长度。请尝试将其移动到具有较短路径名称的位置,或者在执行此操作前尝试将其重命名为较短的名称。

处理方式:

最简单有效的方案,是使用压缩软件的方式将其删除。

1、选择要压缩的文件,右键点击压缩

2、设置压缩参数:选择压缩选项中的“压缩后删除原来的文件(D)”

3、点击“确认”,开始压缩,压缩完成后,原来的文件就被删除了。

Linux使用dd命令安装routeos系统

2023年4月8日 没有评论

以下在centos7下,测试通过

把以下命令写到rosinstall.sh中

1
2
3
4
5
6
7
8
9
10
11
12
wget http://download2.mikrotik.com/routeros/6.43.8/chr-6.43.8.img.zip -O chr.img.zip && \
gunzip -c chr.img.zip > chr.img && \
mount -o loop,offset=33554944 chr.img /mnt && \
ADDRESS0=`ip addr show eth0 | grep global | cut -d' ' -f 6 | head -n 1` && \
GATEWAY0=`ip route list | grep default | cut -d' ' -f 3` && \
echo "/ip address add address=$ADDRESS0 interface=[/interface ethernet find where name=ether1]
/ip route add gateway=$GATEWAY0
" > /mnt/rw/autorun.scr && \
umount /mnt && \
echo u > /proc/sysrq-trigger && \
dd if=chr.img bs=1024 of=/dev/sda && \
reboot

运行sh rosinstall.sh即可。
ps:注意/dev/sda为自己的硬盘,通过fdisk -l可以得到。eth0 这个是自己的网卡。要找对。不然ip不会自动绑定。安装完重启会连不上,要通过vnc去绑定。

分类: Linux, 解决方案 标签: , ,

gitea自建git服务器安装

2023年3月5日 没有评论
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
wget -O gitea https://dl.gitea.com/gitea/1.18.5/gitea-1.18.5-linux-amd64
chmod +x gitea
 
adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git
 
mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
 
 
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini
 
export GITEA_WORK_DIR=/var/lib/gitea/
 
 
GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini

建立git用户后建议打开ssh登陆。因为只有这个用户才可以运行服务。root用户就没办法会提示出错。

分类: Linux, 网络产品 标签: ,

s5720交换机初始化部署

2023年2月4日 没有评论

华为S5720S重置密码-重置

1.重启交换机
按ctrl+B后,进入启动模式。
bootrom默认密码一般是admin@huawei.com或Admin@huawei.com
2.选择7,进入清除console密码
3.选择1,默认模式启动
4.回车,进入
5.设置console密码
sys
user-interface console 0
set authentication password
提示输入密码,设置为admin@123

开机会自动要求改admin密码。密码改为admin123
admin
admin123

6.删除配置
[HUAWEI]undo conf

进入端口
int g0/0/1
启动端口
undo shutdown
关闭端口
shutdown

配置交换机名
[HUAWEI]sysname 交换机名

查看交换机端口情况
dis interface Ethernet brief

创建vlan 10和vlan 20
vlan batch 10 20

[HUAWEI]aaa
[HUAWEI-aaa]local-user admin password cipher admin@123
[HUAWEI-aaa]local-user admin privilege level 15
[HUAWEI-aaa]local-user admin service-type http
[HUAWEI-aaa]return

配置ip地址
dns server 8.8.8.8
dns server 114.114.114.114
interface Vlanif1
ip address 192.168.0.253 255.255.255.0

配置从IP地址(解决RIPv1不连续子网)
ip add 10.0.23.2 sub

配置网关静态路由
ip route-static 0.0.0.0 0.0.0.0 192.168.0.1

http server enable

持续ping
ping -c 1234567890 192.168.0.88

ping -c xxx(1-4294967295) x.x.x.x(ip地址)
这个<1-4294967295>就是可选的ping包数

重置配置文件
startup saved-confiquration
startup saved-confiquration vrpcfg.zip

打开ssh服务
第1步,先建立一个aaa验证用户admin
[SW1]aaa
[SW1-aaa]local-user admin password cipher admin123 #设置aaa用户名和密码
[SW1-aaa]local-user admin privilege level 15 #设置用户级别
[SW1-aaa]local-user admin service-type ssh terminal http

#设置服务类型,开启ssh,终端,和http访问
第2步,设置用户界面视图

[SW1]user-interface vty 0 4
[SW1-ui-vty0-4]authentication-mode aaa #使用aaa验证方式
[SW1-ui-vty0-4]protocol inbound all #允许连入的协议(all包括ssh和telnet)
[SW1-ui-vty0-4]user privilege level 15 #设置用户级别
第3步,配置服务器端rsa秘钥对

[SW1]rsa local-key-pair create #长度采用默认

第4步,新建ssh用户,必须和aaa验证用户同名

[SW1]ssh user admin authentication-type password
#新建ssh用户admin这里使用passwod方式验证

[SW1]ssh user admin service-type all #服务类型all包括stelnet和sftp
[SW1]dis ssh user-information #显示ssh用户信息

第5步,开启stelnet服务

[SW1]stelnet server enable

#各接口简要STP状态
dis stp brief

#具体接口详细STP信息
dis stp interface g0/0/10

#查看当前根桥信息
dis stp

华为交换机设置ntp时间同步
[HUAWEI]display clock
2021-04-01 21:41:35
Thursday
Time Zone(DefaultZoneName) : UTC
[HUAWEI]
1、设置时区
[HUAWEI]clock timezone cst add 8

2、设置时间服务器地址(用的阿里的时间服务器地址)
[HUAWEI]ntp-service unicast-server 203.107.6.88
Warning: The NTP IPv4 server function is disabled. Run the undo server disable command to enable the IPv4 server function.
Warning: The NTP IPv6 server function is disabled. Run the undo IPv6 server disable command to enable the IPv6 server function.

3、查看时间ntp状态
[HUAWEI]display clock

查看ntp服务会话
[HUAWEI]display ntp-service sessions

其他一些常用命令及配置资料

华为 S5720 系列交换机快速配置手册常用命令//华为交换机常用视图:用户视图,系统视图
用户视图:刚开始登入交换机时的视图,一般看到的是尖括号 <>
save // 配置完交换机后保存当前配置的命令
system-view // 进入系统视图的命令
clock timezone BJ add|minus 8 // 设置时区
clock datetime 16:36:00 2020-07-01 // 设置交换机的时间
dis clock utc //查看时间
dis cu // 显示当前配置
dis cu int // 显示当前接口配置
系统视图: 在用户视图下输入 system-view 后进入系统视图, 一般为方括号 []
sysname xxxx //修改交换机设备名,不支持中文
user-interface console 0 //进入第0个console口的用户界面
authentication-mode passwd //配置从console口登入交换机的认证模式为密码认证
set authentication password cipher admin@123 //配置从console口登入交换机的密码
例子(都在系统视图进行配置):
1、开启 SSH 登陆交换机

#1、创建本地密钥对
rsa local-key-pair create
#2、检查是否存在SSH user(可跳过),系统提示没有SSH user 存在
dis ssh user-information
#3、创建SSH user
ssh user xxx authentication-type password
创建名为xxx的用户,认证模式为密码认证
ssh user xxx service-type stelnet
服务类型为stelnet,即SSH
#4、创建用户
aaa
进入aaa
local-user xxx password cipher 12345678
创建对应的SSH用户名,12345678为你想要设置的密码
local-user xxx privilege level 3
设置用户登记,用户level最高到15
local-user xxx service-type ssh
开启该用户允许使用SSH访问设备的权限
#5、启用SSH(stelnet)服务
stelnet server enable
#6、配置vty界面支持的登录协议
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
2、创建 VLAN,设置管理 IP 和 DNS,配置默认路由

vlan batch 1 to 2 10 100
批量创建VLAN1、2、10、100
interface vlan 2
进入VLAN2
ip address 172.16.0.1 255.255.255.0
设置管理IP
dns server 223.5.5.5
dns server 114.114.114.114
dns domain itca.cc
设置DNS
ip route-static 0.0.0.0 0.0.0.0 172.10.0.1
配置所有网络到达所有网络的路径都是由这个172.10.0.1这个地址的接口负责传送
ip route-static 192.168.1.0 255.255.255.0 192.168.0.2是设置静态路由,其中 192.168.1.0 意思是指信息要传到的目的地的 ip 地址,255.255.255.0 为其对应的子网掩码,192.168.0.2 表示信息要达到目的地所要经过的下一个路由器的端口 IP 地址。
3、配置 Trunk 口,配置端口 VLAN

interface gigabitethernet 0/0/24
进入第24个网络端口
port link-type trunk
设置该端口为Trunk模式
port trunk allow-pass vlan 1 to 2
穿透VLAN1、2
interface gigabitethernet 0/0/1
进入第1个网络端口
port default vlan 1
设置该端口为VLAN1
port default vlan
恢复该端口的VLAN缺省值

display port vlan
显示当前各端口的VLAN情况
4、批量配置交换机端口

port-group 1
创建组号为1的端口组
group-member gigabitethernet 0/0/1 to gigabitethernet 0/0/10
把1到10号网络端口加入端口组
port link-type access
批量设置端口为Access模式
port default vlan 10
批量设置端口为VLAN10
5、清除某个端口的配置,启动端口

interface gigabitethernet 0/0/2
打开第2个网络接口
Clear configuration this
清理该端口全部配置信息
Undo shutdown
启动端口
shutdown
关闭端口
6、恢复出厂设置及重启

reset saved-configuration
Y
恢复出厂,输入y确定恢复
Reboot
N
Y
重启设备,第一次输入n不保存配置,第二次输入y确定重启
7、配置 Eth-Trunk 链路聚合

1)手工模式
SW1配置(SW2类似)
interface Eth-Trunk1
port link-type trunk
undo port trunk allow-pass vlan 1
port trunk allow-pass vlan 10 20
interface GigabitEthernet0/0/1
eth-trunk 1
interface GigabitEthernet0/0/2
eth-trunk 1
2)LACP模式
SW1配置(SW2类似)
interface Eth-Trunk1
port link-type trunk
undo port trunk allow-pass vlan 1
port trunk allow-pass vlan 10 20
mode lacp-static //配置模式为静态LACP
max active-linknumber 1 //配置活动接口数量(默认活动接口数量为8,此处两条线路一条为主,一条为备。通信是只有活动接口转发数据)
//注:配置完Eth-Trunk之后再加入接口,LACP模式适用与两台设备多条线路互联,可选择其中几条为主,剩余线路为备,线路故障后备线路自动补上,期间业务影响较小
interface GigabitEthernet0/0/1
eth-trunk 1
interface GigabitEthernet0/0/2
eth-trunk 1
8、配置开启 SNMPv2

snmp-agent community read public // 设置读团体名:public
snmp-agent community write private // 设置写团体名:private
snmp-agent sys-info version v1 v2c // 配置SNMP版本 (v1和v2)
snmp-agent sys-info contact ITCA:10086 // 设置联系方式
snmp-agent sys-info location 3rd-flood // 设置设备位置
snmp-agent trap enable
snmp-agent target-host trap address udp-domain 192.168.1.10 params securityname public
// 允许向网管工作站(NMS)192.168.1.10发送Trap报文,使用的团体名为public

lsblk命令浅析

2023年1月10日 没有评论

lsblk各个字段解释
默认情况下,lsblk命令将以树状格式列出所有块设备:

[root@MyCloudServer ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 10G 0 disk
├─xvda1 202:1 0 500M 0 part /boot
└─xvda2 202:2 0 9.5G 0 part
├─centos-root 253:0 0 8.5G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
xvdb 202:16 0 30G 0 disk
└─xvdb1 202:17 0 30G 0 part
└─Xvdbgroup-xvdb1 253:2 0 29.9G 0 lvm /www
[root@MyCloudServer ~]#

MAJ:MIN: 显示设备的主要和次要设备号,MAJ(major number)表示不同的设备类型,MIN(minor number)表示同一个设备的的不同分区。

RM: 显示设备是否可移动。请注意,在此示例中,设备sr0的RM值等于1,表示它是可移动的。

SIZE: 提供有关设容量的信息。

RO: 显示设备是否为只读。在这种情况下,所有设备的RO均为RO = 0,表示它们不是只读的。

TYPE: 显示块设备是磁盘还是磁盘中的分区(部分)的信息。在此示例中,sda和sdb是磁盘,而sr0是只读存储器(rom)。

MOUNTPOINT: 显示设备的挂载点。

列出所有设备
默认选项不会列出所有空设备。要查看这些内容,还可以使用以下命令:

[root@localhost ~]# lsblk -a
列出设备权限和所有者
要列出设备所有者,组和权限,请使用-m选项:

[root@localhost ~]# lsblk -m

分类: Linux 标签: ,

清理 Docker 日志

2022年12月3日 没有评论

一、概述
Docker 在不重建容器的情况下,日志文件默认会一直追加,时间一长会逐渐占满服务器的硬盘的空间,内存消耗也会一直增加。

Docker 的日志文件存在 /var/lib/docker/containers 目录中

二、处理方案
2.1 使用脚本清理日志(治标)
clean_docker_logs.sh

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
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   =========================="

2.2 设置Docker容器日志大小(治本)
修改docker-compose.yml

示例:

1
2
3
4
5
6
7
8
  gateway-services:
    container_name: gateway-services
    image: adoptopenjdk/openjdk8
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "50m"

max-size=50m,意味着一个容器日志大小上限是50M

重启docker

docker-compose –compatibility up -d

分类: Linux, 解决方案 标签: ,

CACTI监控只能查看一天数据,不能显示其他时间解决方法

2022年11月23日 没有评论

引起这个原因是因为在网站存放位置的:
graph_image.php
graph_json.php
graph_view.php
graph_xport.php
因为限制了时间戳的最大时间是1600000000,此时间为2020-09-13 20:26:40
改为2600000000或者更大

存在BUG的版本:

=0.8.7<1.2.10
0.8.7至1.2.10所有版本,均会出现此故障
不受影响的版本:
=1.2.10后所有版本,<0.8.7前所有版本

问题分析
Cacti从0.8.7版本开始,也就是说在2007年(13年前)设置了时间戳的值为1600000000,转换成时间为2020-09-13 20:26:40,表示在2020年9月13日20点26分40秒后,选择过滤图形时间会导致失效,图形过滤器出现BUG。
3.修复方法

0.8.7版本至1.0.0版本修复方法如下:

修改当前web根目录下的graph_xport.php和graph_image.php两个文件,查找1600000000,每个文件中会有两个这个值,将其全部改成2088385563,修改后无需重启任何服务,直接刷新当前浏览器即可!
if (!empty(_GET["graph_start"]) &&_GET["graph_start"] < 1600000000) {
graphdataarray["graphstart"]=_GET["graph_start"];
}

if (!empty(_GET["graph_end"]) &&_GET["graph_end"] < 1600000000) {
graphdataarray["graphend"]=_GET["graph_end"];
}

1.0.0版本至1.2.10版本修复方法如下:

修改当前web根目录下的graph_image.php、graph_json.php、graph_xport.php、remote_agent.php这四个文件,查找1600000000,将其全部改成2088385563,修改后无需重启任何服务,直接刷新当前浏览器即可!

if (!isempty_request_var(‘graph_start’) && get_request_var(‘graph_start’) < 1600000000) {
$graph_data_array['graph_start'] = get_request_var(‘graph_start’);
}

if (!isempty_request_var(‘graph_end’) && get_request_var(‘graph_end’) < 1600000000) {
$graph_data_array['graph_end'] = get_request_var(‘graph_end’);
}

分类: 解决方案 标签: ,

9 个实用 Shell 脚本(转)

2022年11月10日 没有评论

看到 9 个 shell 脚本范例,运维可以根据实际情况进行修改,9个 shell 脚本如下:

1、Dos 攻击防范(自动屏蔽攻击 IP)

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
DATE=$(date +%d/%b/%Y:%H:%M)
LOG_FILE=/usr/local/nginx/logs/demo2.access.log
ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}')
for IP in $ABNORMAL_IP; do
    if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then
        iptables -I INPUT -s $IP -j DROP
        echo "$(date +'%F_%T') $IP" >> /tmp/drop_ip.log
    fi
done

2、Linux 系统发送告警脚本

1
2
3
4
5
# yum install mailx
# vi /etc/mail.rc
set from=baojingtongzhi@163.com smtp=smtp.163.com
set smtp-auth-user=baojingtongzhi@163.com smtp-auth-password=*******
set smtp-auth=login

3、MySQL 数据库备份单循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
DATE=$(date +%F_%H-%M-%S)
HOST=localhost
USER=backup
PASS=123.com
BACKUP_DIR=/data/db_backup
DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys")
 
for DB in $DB_LIST; do
    BACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sql
    if ! mysqldump -h$HOST -u$USER -p$PASS -B $DB > $BACKUP_NAME 2>/dev/null; then
        echo "$BACKUP_NAME 备份失败!"
    fi
done

4、MySQL 数据库备份多循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
DATE=$(date +%F_%H-%M-%S)
HOST=localhost
USER=backup
PASS=123.com
BACKUP_DIR=/data/db_backup
DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys")
 
for DB in $DB_LIST; do
    BACKUP_DB_DIR=$BACKUP_DIR/${DB}_${DATE}
    [ ! -d $BACKUP_DB_DIR ] && mkdir -p $BACKUP_DB_DIR &>/dev/null
    TABLE_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "use $DB;show tables;" 2>/dev/null)
    for TABLE in $TABLE_LIST; do
        BACKUP_NAME=$BACKUP_DB_DIR/${TABLE}.sql
        if ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE > $BACKUP_NAME 2>/dev/null; then
            echo "$BACKUP_NAME 备份失败!"
        fi
    done
done

5、Nginx 访问访问日志按天切割

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
LOG_DIR=/usr/local/nginx/logs
YESTERDAY_TIME=$(date -d "yesterday" +%F)
LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m")
LOG_FILE_LIST="default.access.log"
 
for LOG_FILE in $LOG_FILE_LIST; do
    [ ! -d $LOG_MONTH_DIR ] && mkdir -p $LOG_MONTH_DIR
    mv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME}
done
 
kill -USR1 $(cat /var/run/nginx.pid)

6、Nginx 访问日志分析脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
# 日志格式: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"
LOG_FILE=$1
echo "统计访问最多的10个IP"
awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10
echo "----------------------"
 
echo "统计时间段访问最多的IP"
awk '$4>="[01/Dec/2018:13:20:25" && $4<="[27/Nov/2018:16:20:49"{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr|head -10
echo "----------------------"
 
echo "统计访问最多的10个页面"
awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE |sort -k2 -nr
echo "----------------------"
 
echo "统计访问页面状态码数量"
awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}'
7、查看网卡实时流量脚本
 
#!/bin/bash
NIC=$1
echo -e " In ------ Out"
while true; do
    OLD_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev)
    OLD_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)
    sleep 1
    NEW_IN=$(awk  '$0~"'$NIC'"{print $2}' /proc/net/dev)
    NEW_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)
    IN=$(printf "%.1f%s" "$((($NEW_IN-$OLD_IN)/1024))" "KB/s")
    OUT=$(printf "%.1f%s" "$((($NEW_OUT-$OLD_OUT)/1024))" "KB/s")
    echo "$IN $OUT"
    sleep 1
done

8、服务器系统配置初始化脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#/bin/bash
# 设置时区并同步时间
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
if ! crontab -l |grep ntpdate &>/dev/null ; then
    (echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontab
fi
 
# 禁用selinux
sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config
 
# 关闭防火墙
if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; then
    systemctl stop firewalld
    systemctl disable firewalld
elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; then
    service iptables stop
    chkconfig iptables off
fi
 
# 历史命令显示操作时间
if ! grep HISTTIMEFORMAT /etc/bashrc; then
    echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc
fi
 
# SSH超时时间
if ! grep "TMOUT=600" /etc/profile &>/dev/null; then
    echo "export TMOUT=600" >> /etc/profile
fi
 
# 禁止root远程登录
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
 
# 禁止定时任务向发送邮件
sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab
 
# 设置最大打开文件数
if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then
    cat >> /etc/security/limits.conf << EOF
    * soft nofile 65535
    * hard nofile 65535
EOF
fi
 
# 系统内核优化
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckets = 20480
net.ipv4.tcp_max_syn_backlog = 20480
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_fin_timeout = 20
EOF
 
# 减少SWAP使用
echo "0" > /proc/sys/vm/swappiness
 
# 安装系统性能分析工具及其他
yum install gcc make autoconf vim sysstat net-tools iostat if

9、监控 100 台服务器磁盘利用率脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
HOST_INFO=host.info
for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do
    USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO)
    PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)
    TMP_FILE=/tmp/disk.tmp
    ssh -p $PORT $USER@$IP 'df -h' > $TMP_FILE
    USE_RATE_LIST=$(awk 'BEGIN{OFS="="}/^\/dev/{print $NF,int($5)}' $TMP_FILE)
    for USE_RATE in $USE_RATE_LIST; do
        PART_NAME=${USE_RATE%=*}
        USE_RATE=${USE_RATE#*=}
        if [ $USE_RATE -ge 80 ]; then
            echo "Warning: $PART_NAME Partition usage $USE_RATE%!"
        fi
    done
done
分类: Linux 标签: ,

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

2022年10月13日 没有评论

ssh 连接 centos 服务器时报警告:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

原因是 ssh连接的时候会传递环境变量,这个变量如在服务器没有的环境,就会报这个错误,是LC_CTYPE这个环境变量导致的提示。

对于LC_CTYPE的参数,我们一般建议设置成UTF-8,服务器上配置文件缺少相应配置参数。所以就报错了。

解决办法:
在centos上运行

vi /etc/locale.conf

内容改为:

LANG=en_US.utf8
LC_ALL=en_US.utf8
LC_CTYPE=en_US.utf8

重新连接ssh,就可以解决错误提示。

分类: Linux, 解决方案 标签: , ,

proxmox 7 :WARN: old systemd (< v232) detected, container won't run in a pure cgroupv2 environment! Please see documentation -> container -> cgroup version.

2022年10月13日 没有评论

proxmox 升到7,或是安装7后的版本在使用旧的pct模版LXC的 Centos 7 无法开机,出现以下错误提示:

WARN: old systemd (< v232) detected, container won't run in a pure cgroupv2 environment! Please see documentation -> container -> cgroup version.

TASK WARNINGS: 1

解決方法如下

vim /etc/default/grub

找到以下
GRUB_CMDLINE_LINUX_DEFAULT=”quiet”

改成以下

GRUB_CMDLINE_LINUX_DEFAULT=”systemd.unified_cgroup_hierarchy=0 quiet”

运行更新grub

update-grub

重启服务器
reboot