技术学习

Debian系统添加绑定多个IP地址

Debian需要修改 /etc/network/interfaces 文件来修改或添加多个IP地址的绑定

先备份interfaces文件

cp /etc/network/interfaces /root/interfaces.bak

使用VIM编辑配置文件

vim /etc/network/interfaces

示例文件:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eno1:0
iface eno1:0 inet static
    address 12.3.12.10
    netmask 255.255.255.192
    gateway 12.3.12.1
    dns-nameservers 8.8.8.8
	
auto eno1:1
iface eno1:1 inet static
    address 12.3.12.11
    netmask 255.255.255.192
    gateway 12.3.12.1
    dns-nameservers 8.8.8.8
 
auto eno1:2
iface eno1:2 inet static
    address 12.3.12.12
    netmask 255.255.255.192
    gateway 12.3.12.1
    dns-nameservers 8.8.8.8
 
auto eno1:3
iface eno1:3 inet static
    address 12.3.12.13
    netmask 255.255.255.192
    gateway 12.3.12.1
    dns-nameservers 8.8.8.8
 

重启网络

service networking restart

可用以下脚本批量添加,注意根据实际ip地址进行改动

# !/bin/bash
for ((i=1;i<=64;i=i+1))
do
echo "auto eth0:$i">>/etc/network/interfaces
echo "iface eth0:$i inet static">>/etc/network/interfaces
let j=$i+29
echo "address 1.2.3.$j">>/etc/network/interfaces
echo "netmask 255.255.255.248">>/etc/network/interfaces
echo "gateway 1.2.3.4">>/etc/network/interfaces
echo " ">>/etc/network/interfaces
done
# end

同样适用于ubuntu 17.10以前的版本,ubuntu17.10以后的请看这里

阅读更多Debian系统添加绑定多个IP地址

Debian 默认官方源 sources.list

鉴于很多预装的VPS为厂商源而非官方源,在此记录一下官方源。

先备份apt源配置

mv /etc/apt/sources.list /etc/apt/sources.list.old

编辑sources.list文件

vi /etc/apt/sources.list

Debian 12/Bookworm

deb http://deb.debian.org/debian bookworm main non-free-firmware
deb-src http://deb.debian.org/debian bookworm main non-free-firmware

deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware

deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware

Debian 11/Bullseye

deb http://deb.debian.org/debian bullseye main
deb-src http://deb.debian.org/debian bullseye main

deb http://deb.debian.org/debian-security/ bullseye-security main
deb-src http://deb.debian.org/debian-security/ bullseye-security main

deb http://deb.debian.org/debian bullseye-updates main
deb-src http://deb.debian.org/debian bullseye-updates main

如果需要 contrib 、 non-free 和 non-free-firmware 组件,请在 main 之后添加 contrib non-free non-free-firmware

Debian 12/Bookworm

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware

deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware

Debian 11/Bullseye,无 non-free-firmware

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

如果需要 Backports、contrib 和非自由组件

Debian 12/Bookworm,请添加bookworm-backports

deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware

Debian 11/Bullseye,请添加bullseye-backports

deb http://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free

其它更多请参考官方说明:

https://wiki.debian.org/SourcesList

另外,如果想要从Debian 11 升级到 Debian 12 的,可以查看这篇文章,感谢原文作者。

阅读更多Debian 默认官方源 sources.list

使用WP CLI批量更新WordPress站点

场景:一台Debian机器下有500+worpdrsss站点,需将所有站点的wordpress程序、主题、插件,还有Woocommerce商店都更新到最新版。

首先 sudo apt update && apt upgrade -y 更新一下。

安装 WP CLI

#安装 WP CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

#检测phar文件工作状态
php wp-cli.phar --info

#给wp-cli.phar文件增加可执行权限,并调整为可使用wp命令来执行
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

#验证
wp --info

#输出如下
OS:     Linux 5.10.0-18-amd64 #1 SMP Debian 5.10.140-1 (2022-09-02) x86_64
Shell:  /bin/bash
PHP binary:     /www/server/php/80/bin/php
PHP version:    8.0.20
php.ini used:   /www/server/php/80/etc/php-cli.ini
MySQL binary:   /usr/bin/mysql
MySQL version:  mysql  Ver 14.14 Distrib 5.7.39, for Linux (x86_64) using  EditLine wrapper
SQL modes:
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /root
WP-CLI packages dir:
WP-CLI cache dir:       /root/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.7.1

#更新 wp cli
wp cli update

执行批量更新

假设所有网站存放路径为 /www/web/ ,方法如下:

新建以下 update_wp.sh 文件

#!/bin/bash

for dir in /www/web/*; do
  if [[ -d "$dir" ]]; then
    echo "正在处理: $dir"
    cd "$dir" || { echo "错误: 无法切换到 $dir 目录"; continue; }
    wp core update || echo "注意: $dir wp内核升级失败"
    wp theme update --all || echo "注意: $dir 主题升级失败"
    wp plugin update --all || echo "注意: $dir 插件升级失败"
    wp rewrite flush || echo "注意: $dir 的rewrite刷新失败"
    echo "完成升级: $dir"
    echo "--------------------"
  fi
done
#给执行权限
chmod +x update_wp.sh

#执行脚本
./update_wp.sh

如果是用root用户执行的,会提示命令后面需要加上 --allow-root

#!/bin/bash

for dir in /www/web/*; do
  if [[ -d "$dir" ]]; then
    echo "正在处理: $dir"
    cd "$dir" || { echo "错误: 无法切换到 $dir 目录"; continue; }
    wp core update --allow-root || echo "注意: $dir wp内核升级失败"
    wp theme update --all --allow-root || echo "注意: $dir 主题升级失败"
    wp plugin update --all --allow-root || echo "注意: $dir 插件升级失败"
    wp rewrite flush --allow-root || echo "注意: $dir 的rewrite刷新失败"
    echo "完成升级: $dir"
    echo "--------------------"
  fi
done

有安装woocommer的需要再加一条商店数据库的更新

wp wc update || echo "注意: $dir woocommerce数据库更新失败"

以下为老方法,不建议使用

cd /www/web ,然后 vim wpexec.sh,内容如下,保存。

#!/bin/bash
DIR=`ls .`
for dir in ${DIR};do
	if [ -d ${dir} ];then
		echo $dir
		cp wpup.sh ${dir}
		cd ${dir}
		pwd
		./wpup.sh 
		cd ..
	fi
done

vim wpup.sh 内容如下,保存。这里要注意一下权限的问题,建议先单个执行wp core update看下。

#!/bin/bash
#更新wordrepss
wp core update --allow-root
#更新wordpress db
wp core update-db --allow-root
# 更新插件,排除 akismet和hello
wp plugin update --all --exclude=akismet,hello --allow-root
# 更新主题
wp theme update --all --allow-root
# 更新woocommerce db
wp wc update --allow-root

然后给文件增加可执行权限

chmod +x wpexec.sh
chmod +x wpup.sh

执行脚本

bash wpexec.sh

最后删除这2个文件

find . -maxdepth 2 -name 'wp*.sh' -delete

参考:

https://wp-cli.org/
https://developer.wordpress.org/cli/commands/
https://github.com/woocommerce/woocommerce/wiki/Upgrading-the-database-using-WP-CLI
https://blog.csdn.net/robinblog/article/details/8853628

阅读更多使用WP CLI批量更新WordPress站点