作者归档:longgenxing

黔东大峡谷

2025年8月3日

五月的黔东大峡谷,刚下过一场暴雨。空气湿漉漉的,带着泥土味。水汽从谷底升起,白蒙蒙一片。远方最高的山峰顶上,一道完整的彩虹骑在云和山之间,像是一道天堂游乐场的拱门。一条窄窄的柏油路公路绕着山腰,雨后干净黑的透亮,像条山谷的腰带。

这美景下面,却是一片混乱。一辆越野车和一辆面包车在拐弯处追尾了。两辆车歪歪扭扭,把路堵死。后面跟着的六七辆旅游大巴,全动不了

越野车的司机下来了。他戴着墨镜,指着面包车司机:“你瞎吗?弯道也抢?”

面包车司机是个壮实的中年男人。他立刻吼回去:“我抢?!你咋个不讲你乱点刹车?”他推了越野车司机一把。越野车司机差点摔倒,站稳后揪住他的衣领。两人立刻推搡起来。

最前面的大巴司机推了手刹,点支烟,不耐烦的下了车,“兄弟,莫吵了!后面几车人等着呢!”车上有游客也喊起来:“我们还赶时间看景呢!”

奇怪的是,刚才还互不相让的两个司机,现在突然一致对外。墨镜男冲着大巴司机骂:“少管闲事!”。中年男人更凶。他弯腰从路边抱起一块大石头,用力扔向大巴车前面不远的地上。“哐当”一声。“老子堵!哪个也莫想走!”他吼道。

人群炸了锅。司机们、游客们全下车围过来。有人讲道理,有人直接骂人,有人想劝架,也有人放狠话。乱哄哄的声音在峡谷里嗡嗡响。这吵闹声突然惊起了一群山鸟,迅速掠过争吵的人群上空,所有人都惊呆这黑压压的山鸟袭来。

就在这瞬间的停顿里,墨镜男突然不骂了。他死死盯了中年男人一眼。他猛地松开手,转身钻回越野车,“砰”地关上车门。接着引擎就响了,一溜烟开向前去。

中年男人也愣了一下。但几乎没有犹豫,他也飞快转身,跳进自己的面包车,启动追了上去。

“疯子!”有人这时才反应过来,大骂了一声。

这骂声还在峡谷里回响,山谷深处却传来了闷雷似的轰隆声!紧接着,巨大无比的轰鸣猛地炸开!整面山崖像被抽掉了筋骨,轰然塌落!

浑浊的泥石洪流裹挟着无数巨大的岩石和断裂的树木,奔腾咆哮而下!那几秒钟前越野车和面包车消失的地方,连同大巴前面十几米的公路,就在所有人的眼前,瞬间被彻底掩埋!刚才中年男人扔石头的地方,被深深埋进了千万吨的土石之下,无影无踪。

雨后的天很蓝,那道美丽的彩虹已经消失不见。

复制Esxi虚拟机

1.复制单个虚拟机

    SRC_VM="klv10-000_1"
    DST_VM="klv10-008"
    DATASTORE="kylin-vdis-storage (1)"
    
    # 录
    mkdir "/vmfs/volumes/${DATASTORE}/${DST_VM}"
    
    # 复制文件
    vmkfstools -i "/vmfs/volumes/${DATASTORE}/${SRC_VM}/${SRC_VM}.vmdk" \
               "/vmfs/volumes/${DATASTORE}/${DST_VM}/${DST_VM}.vmdk" -d thin
    
    # 复制并修改配置文件
    cp "/vmfs/volumes/${DATASTORE}/${SRC_VM}/${SRC_VM}.vmx" \
       "/vmfs/volumes/${DATASTORE}/${DST_VM}/${DST_VM}.vmx"
    
    sed -i "s/${SRC_VM}/${DST_VM}/g" "/vmfs/volumes/${DATASTORE}/${DST_VM}/${DST_VM}.vmx"
    
    # 注册新虚拟机
    vim-cmd solo/registervm "/vmfs/volumes/${DATASTORE}/${DST_VM}/${DST_VM}.vmx"
    
    echo "虚拟机 ${DST_VM} 克隆完成"
    

    2. 批量复制虚拟机

    onfiguration
    SRC_VM="klv10-008"       # Source VM template
    DATASTORE="kylin-vdis-storage (1)"   # Storage location
    START_NUM=12              # First VM number
    END_NUM=106              # Last VM number
    
    # Path definitions
    SRC_DIR="/vmfs/volumes/${DATASTORE}/${SRC_VM}"
    SRC_VMDK="${SRC_DIR}/${SRC_VM}.vmdk"
    SRC_VMX="${SRC_DIR}/${SRC_VM}.vmx"
    
    # Verify source VM exists
    [ ! -d "${SRC_DIR}" ] && { echo "ERROR: Source VM directory ${SRC_DIR} not found"; exit 1; }
    [ ! -f "${SRC_VMX}" ] && { echo "ERROR: Source VMX file ${SRC_VMX} not found"; exit 1; }
    
    # Main cloning loop
    for NUM in $(seq -w ${START_NUM} ${END_NUM}); do
        DST_VM="klv10-${NUM}"
        DST_DIR="/vmfs/volumes/${DATASTORE}/${DST_VM}"
        DST_VMDK="${DST_DIR}/${DST_VM}.vmdk"
        DST_VMX="${DST_DIR}/${DST_VM}.vmx"
    
        echo "========================================"
        echo "Cloning ${SRC_VM} to ${DST_VM}"
        echo "========================================"
    
        # Create destination directory
        mkdir -p "${DST_DIR}" || { echo "ERROR: Failed to create directory ${DST_DIR}"; continue; }
    
        # Clone virtual disk
        echo "Step 1/3: Cloning virtual disk..."
        vmkfstools -i "${SRC_VMDK}" "${DST_VMDK}" -d thin || { echo "ERROR: Disk clone failed"; continue; }
    
        # Copy and modify config file
        echo "Step 2/3: Processing VM configuration..."
        cp "${SRC_VMX}" "${DST_VMX}" || { echo "ERROR: Failed to copy VMX file"; continue; }
        sed -i "s/${SRC_VM}/${DST_VM}/g" "${DST_VMX}" || { echo "ERROR: Failed to modify VMX file"; continue; }
    
        # Register new VM
        echo "Step 3/3: Registering VM..."
        vim-cmd solo/registervm "${DST_VMX}" || { echo "ERROR: VM registration failed"; continue; }
    
        echo "Successfully cloned ${DST_VM}"
    done
    
    echo "Bulk cloning operation completed"
    

    Ubuntu部署Wireguard

    # 更新镜像并安装WireGuard
    apt update && apt install -y wireguard
    
    # 开启IP转发
    echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
    sysctl -p
    
    

    2. 生成密钥对

    # 创建配置目录
    mkdir -p /etc/wireguard && chmod 0777 /etc/wireguard
    cd /etc/wireguard
    umask 077
    
    # 生成服务器密钥
    wg genkey | tee server_privatekey | wg pubkey > server_publickey
    
    # 生成客户端密钥(可生成多个)
    wg genkey | tee client1_privatekey | wg pubkey > client1_publickey
    
    

    3. 服务端配置

    # 创建配置文件(注意替换eth0为实际网卡名)
    cat > wg0.conf <<EOF
    [Interface]
    PrivateKey = $(cat server_privatekey)
    Address = 10.0.8.1/24
    ListenPort = 50814
    DNS = 8.8.8.8
    MTU = 1420
    
    # 流量转发规则(eth0需替换)
    PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
    
    [Peer]
    # 客户端1配置
    PublicKey = $(cat client1_publickey)
    AllowedIPs = 10.0.8.10/32
    EOF
    
    

    4. 启动服务

    # 设置开机自启
    systemctl enable wg-quick@wg0
    
    # 启动服务
    wg-quick up wg0
    
    # 检查状态
    wg show

    5. 客户端配置

    # 生成客户端配置
    cat > client1.conf <<EOF
    [Interface]
    PrivateKey = $(cat client1_privatekey)
    Address = 10.0.8.10/32
    DNS = 8.8.8.8
    MTU = 1420
    
    [Peer]
    PublicKey = $(cat server_publickey)
    Endpoint = [服务器公网IP]:50814
    AllowedIPs = 0.0.0.0/0
    PersistentKeepalive = 25
    EOF
    
    
    # 生成新客户端密钥
    wg genkey | tee client2_privatekey | wg pubkey > client2_publickey
    
    # 追加到wg0.conf
    cat >> wg0.conf <<EOF
    
    [Peer]
    # 客户端2配置
    PublicKey = $(cat client2_publickey)
    AllowedIPs = 10.0.8.11/32
    EOF
    
    # 重载配置
    wg syncconf wg0 <(wg-quick strip wg0)
    
    链接:https://juejin.cn/post/7512058418623774735
    来源:稀土掘金

    个人介绍

    入职天津学院20周年发言稿
    龙根星
    尊敬的学院领导,各位老师:
    大家下午好!
    非常荣幸能有机会代表我个人站在这里发言。作为天津学院的一名”老”员工,此刻既是在参加学校的庆典,也是在为自己的人生做一个小结。
    我今年43岁,正经历着幸运而幸福的人生旅程。这个旅程绝大部分时光都是在天津学院度过,每个细节也都与天津学院相关。
    我来自贵州东部一个苗族小山村,村里一共就20户人家。记得初中二年级某天放学,我照例挎着家里的土火枪去打猎。那天我击落了一只山鹰。父亲用这只鹰宴请了他的同事,还有村里最年长的老人。
    我们那里流传说,打到山鹰会带来五年好运。第五年,我考上了北京科技大学,后来就紧跟着第一批来到了天津学院参加工作。
    这件事已过去了三十年,我却始终难以忘怀。几次在梦里,那只山鹰两米多长的翅膀,竟长在了我的背上。
    对我而言,天津学院就像一棵大树。她生长了二十年,我也在她的枝头栖息了二十年。我的事业、生活、家庭,可以说都是天津学院给予的馈赠。这真是一段无比幸福、美妙,而又神奇的人生际遇。
    今天,我本想穿着苗族服装来发表感言,但那套衣服,是我母亲送我来北京上大学时缝的。如今我大腹便便的中年模样,早已与当年的翩翩少年判若两人,无论如何也是穿不上了!所以今天只能,缠上当年的头巾,来表答我的心意和谢意。
    最后,再次感谢天津学院和学院领导,提供了一方奋斗事业的舞台;感谢各位同事,还有学生,营造了意义非凡的氛围。
    祝愿天津学院桃李芬芳,蒸蒸日上!谢谢大家!
    2025年5月16日