2023年4月9日星期日

Linux自动挂载磁盘的方法

 来自宝塔的自动挂载磁盘脚本:


#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
LANG=en_US.UTF-8
setup_path=/www
#if [ $1 != "" ];then
    #setup_path=$1;
#fi

#检测磁盘数量
sysDisk=`cat /proc/partitions|grep -v name|grep -v ram|awk '{print $4}'|grep -v '^$'|grep -v '[0-9]$'|grep -v 'vda'|grep -v 'xvda'|grep -v 'sda'|grep -e 'vd' -e 'sd' -e 'xvd'`
if [ "${sysDisk}" == "" ]; then
    echo -e "ERROR!This server has only one hard drive,exit"
    echo -e "此服务器只有一块磁盘,无法挂载"
    echo -e "Bye-bye"
    exit;
fi
#检测/www目录是否已挂载磁盘
mountDisk=`df -h | awk '{print $6}' |grep www`
if [ "${mountDisk}" != "" ]; then
    echo -e "www directory has been mounted,exit"
    echo -e "www目录已被挂载,不执行任何操作"
    echo -e "Bye-bye"
    exit;
fi
#检测是否有windows分区
winDisk=`fdisk -l |grep "NTFS\|FAT32"`
if [ "${winDisk}" != "" ];then
    echo 'Warning: The Windows partition was detected. For your data security, Mount manually.';
    echo "危险 数据盘为windwos分区,为了你的数据安全,请手动挂载,本脚本不执行任何操作。"
    exit;
fi
echo "
+----------------------------------------------------------------------
| Bt-WebPanel Automatic disk partitioning tool
+----------------------------------------------------------------------
| Copyright © 2015-2017 BT-SOFT(http://www.bt.cn) All rights reserved.
+----------------------------------------------------------------------
| Auto mount partition disk to $setup_path
+----------------------------------------------------------------------
"


#数据盘自动分区
fdiskP(){
    
    for i in `cat /proc/partitions|grep -v name|grep -v ram|awk '{print $4}'|grep -v '^$'|grep -v '[0-9]$'|grep -v 'vda'|grep -v 'xvda'|grep -v 'sda'|grep -e 'vd' -e 'sd' -e 'xvd'`;
    do
        #判断指定目录是否被挂载
        isR=`df -P|grep $setup_path`
        if [ "$isR" != "" ];then
            echo "Error: The $setup_path directory has been mounted."
            return;
        fi
        
        isM=`df -P|grep '/dev/${i}1'`
        if [ "$isM" != "" ];then
            echo "/dev/${i}1 has been mounted."
            continue;
        fi
            
        #判断是否存在未分区磁盘
        isP=`fdisk -l /dev/$i |grep -v 'bytes'|grep "$i[1-9]*"`
        if [ "$isP" = "" ];then
                #开始分区
                fdisk -S 56 /dev/$i << EOF
n
p
1


wq
EOF

            sleep 5
            #检查是否分区成功
            checkP=`fdisk -l /dev/$i|grep "/dev/${i}1"`
            if [ "$checkP" != "" ];then
                #格式化分区
                mkfs.ext4 /dev/${i}1
                mkdir $setup_path
                #挂载分区
                sed -i "/\/dev\/${i}1/d" /etc/fstab
                echo "/dev/${i}1    $setup_path    ext4    defaults    0 0" >> /etc/fstab
                mount -a
                df -h
            fi
        else
            #判断是否存在Windows磁盘分区
            isN=`fdisk -l /dev/$i|grep -v 'bytes'|grep -v "NTFS"|grep -v "FAT32"`
            if [ "$isN" = "" ];then
                echo 'Warning: The Windows partition was detected. For your data security, Mount manually.';
                return;
            fi
            
            #挂载已有分区
            checkR=`df -P|grep "/dev/$i"`
            if [ "$checkR" = "" ];then
                    mkdir $setup_path
                    sed -i "/\/dev\/${i}1/d" /etc/fstab
                    echo "/dev/${i}1    $setup_path    ext4    defaults    0 0" >> /etc/fstab
                    mount -a
                    df -h
            fi
            
            #清理不可写分区
            echo 'True' > $setup_path/checkD.pl
            if [ ! -f $setup_path/checkD.pl ];then
                    sed -i "/\/dev\/${i}1/d" /etc/fstab
                    mount -a
                    df -h
            else
                    rm -f $setup_path/checkD.pl
            fi
        fi
    done
}
stop_service(){

    /etc/init.d/bt stop

    if [ -f "/etc/init.d/nginx" ]; then
        /etc/init.d/nginx stop > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/httpd" ]; then
        /etc/init.d/httpd stop > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/mysqld" ]; then
        /etc/init.d/mysqld stop > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/pure-ftpd" ]; then
        /etc/init.d/pure-ftpd stop > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/tomcat" ]; then
        /etc/init.d/tomcat stop > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/redis" ]; then
        /etc/init.d/redis stop > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/memcached" ]; then
        /etc/init.d/memcached stop > /dev/null 2>&1
    fi

    if [ -f "/www/server/panel/data/502Task.pl" ]; then
        rm -f /www/server/panel/data/502Task.pl
        if [ -f "/etc/init.d/php-fpm-52" ]; then
            /etc/init.d/php-fpm-52 stop > /dev/null 2>&1
        fi

        if [ -f "/etc/init.d/php-fpm-53" ]; then
            /etc/init.d/php-fpm-53 stop > /dev/null 2>&1
        fi

        if [ -f "/etc/init.d/php-fpm-54" ]; then
            /etc/init.d/php-fpm-54 stop > /dev/null 2>&1
        fi

        if [ -f "/etc/init.d/php-fpm-55" ]; then
            /etc/init.d/php-fpm-55 stop > /dev/null 2>&1
        fi

        if [ -f "/etc/init.d/php-fpm-56" ]; then
            /etc/init.d/php-fpm-56 stop > /dev/null 2>&1
        fi

        if [ -f "/etc/init.d/php-fpm-70" ]; then
            /etc/init.d/php-fpm-70 stop > /dev/null 2>&1
        fi

        if [ -f "/etc/init.d/php-fpm-71" ]; then
            /etc/init.d/php-fpm-71 stop > /dev/null 2>&1
        fi
    fi
}

start_service()
{
    /etc/init.d/bt start

    if [ -f "/etc/init.d/nginx" ]; then
        /etc/init.d/nginx start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/httpd" ]; then
        /etc/init.d/httpd start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/mysqld" ]; then
        /etc/init.d/mysqld start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/pure-ftpd" ]; then
        /etc/init.d/pure-ftpd start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/tomcat" ]; then
        /etc/init.d/tomcat start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/redis" ]; then
        /etc/init.d/redis start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/memcached" ]; then
        /etc/init.d/memcached start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/php-fpm-52" ]; then
        /etc/init.d/php-fpm-52 start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/php-fpm-53" ]; then
        /etc/init.d/php-fpm-53 start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/php-fpm-54" ]; then
        /etc/init.d/php-fpm-54 start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/php-fpm-55" ]; then
        /etc/init.d/php-fpm-55 start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/php-fpm-56" ]; then
        /etc/init.d/php-fpm-56 start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/php-fpm-70" ]; then
        /etc/init.d/php-fpm-70 start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/php-fpm-71" ]; then
        /etc/init.d/php-fpm-71 start > /dev/null 2>&1
    fi

    if [ -f "/etc/init.d/php-fpm-72" ]; then
        /etc/init.d/php-fpm-71 start > /dev/null 2>&1
    fi
    
    if [ -f "/etc/init.d/php-fpm-73" ]; then
        /etc/init.d/php-fpm-71 start > /dev/null 2>&1
    fi

    echo "True" > /www/server/panel/data/502Task.pl
}

while [ "$go" != 'y' ] && [ "$go" != 'n' ]
do
    read -p "Do you want to try to mount the data disk to the $setup_path directory?(y/n): " go;
done

if [ "$go" = 'n' ];then
    echo -e "Bye-bye"
    exit;
fi

if [ -f "/etc/init.d/bt" ] && [ -f "/www/server/panel/data/port.pl" ]; then
    disk=`cat /proc/partitions|grep -v name|grep -v ram|awk '{print $4}'|grep -v '^$'|grep -v '[0-9]$'|grep -v 'vda'|grep -v 'xvda'|grep -v 'sda'|grep -e 'vd' -e 'sd' -e 'xvd'`
    diskFree=`cat /proc/partitions |grep ${disk}|awk '{print $3}'`
    wwwUse=`du -sh -k /www|awk '{print $1}'`

    if [ "${diskFree}" -lt "${wwwUse}" ]; then
        echo -e "Sorry,your data disk is too small,can't coxpy to the www."
        echo -e "对不起,你的数据盘太小,无法迁移www目录数据到此数据盘"
        exit;
    else
        echo -e ""
        echo -e "stop bt-service"
        echo -e "停止宝塔服务"
        echo -e ""
        sleep 3
        stop_service
        echo -e ""
        mv /www /bt-backup
        echo -e "disk partition..."
        echo -e "磁盘分区..."
        sleep 2
        echo -e ""
        fdiskP
        echo -e ""
        echo -e "move disk..."
        echo -e "迁移数据中..."
        \cp -r -p -a /bt-backup/* /www
        echo -e ""
        echo -e "Done"
        echo -e "迁移完成"
        echo -e ""
        echo -e "start bt-service"
        echo -e "启动宝塔服务"
        echo -e ""
        start_service
    fi
else
    fdiskP
    echo -e ""
    echo -e "Done"
    echo -e "挂载成功"
fi

使用方法:

1、复制代码,保存为 autodisk.sh
2、bash autodisk.sh 即可!

2023年4月7日星期五

Autodesk AutoCAD 2024.0.0_中文

 Autodesk AutoCAD 2024 官方简体中文版完整离线安装包

https://efulfillment.autodesk.com/NetSWDLD/2024/ACD/C0D3A90A-5925-3283-B826-68A4EAF3698A/SFX/AutoCAD_2024_Simplified_Chinese_Win_64bit_dlm_001_002.sfx.exe

https://efulfillment.autodesk.com/NetSWDLD/2024/ACD/C0D3A90A-5925-3283-B826-68A4EAF3698A/SFX/AutoCAD_2024_Simplified_Chinese_Win_64bit_dlm_002_002.sfx.exe

Autodesk AutoCAD LT 2024 官方简体中文版完整离线安装包

https://trial2.autodesk.com/NetSWDLD/2024/ACDLT/73E6C25F-EEFD-3C10-8F94-27C090847201/SFX/AutoCAD_LT_2024_Simplified_Chinese_Win_64bit_dlm.sfx.exe

AutoCAD2024-2021 Patch - KarMa CAD2024补丁通用版

https://423down.lanzouo.com/iqQW307vlqbc

AutoCADLT2024-2021 Patch - KarMa CADLT2024补丁通用版
https://423down.lanzouo.com/iLLB907vlqab

欧特克2024-2021系列网络许可管理器补丁简化步骤全自动通用版
::管理员身份运行AdskNLM.exe等待完毕,  启动软件->选网络许可->完
﹂Autodesk NLM Cracked (MAGNiTUDE method) (2023/04/06)
https://423down.lanzouo.com/iWGoY0saxsgb

远程控制软件推荐

RayLink
Windows客户端
Windows客户端绿色版(受控端)
Android客户端
使用帮助

特性:
专为视觉行业打造的真高清、超流畅远程控制软件!
防窥模式
开启后受控端黑屏,防止创意被偷窥剽窃,避免隐私泄露
多通道
同一个账号,可在多台主控端发起远程,不限连接数量
数位板/数位屏
灵敏还原压感,倾斜感应
游戏手柄
可支持4台游戏手柄同时操控
设备列表不限数量
支持分组管理,可以无限添加设备至列表中
高速传输
集成自研高速传输引擎,文件传输效率高
剪切板
支持复制粘贴
拖拽文件
支持一键批量拖拽文件传输
虚拟屏
支持在被控端屏幕创建多个虚拟屏,可搭配多屏对多屏功能使用
多屏对多屏
当被控有多个屏幕时,主控可同时用多屏显示被控的多个屏幕内容,可搭配虚拟屏使用
多屏预览
支持在主控端屏幕同时预览多台被控设备屏幕
远程音频录制
支持将主控端声音传到被控端设备,可在剪辑软件上使用

中国移动畅连
特性:
远程办公
远程协助
远程存储,远程文件上传和下载,免费高速,支持SMB协议,
支持调用RDP客户端(使用VPN方式)
支持跨平台、跨网络、跨设备的的远程控制, 有且不限于PC对PC,移动端对PC

UU远程
特性:
远程协助
支持跨平台、跨网络、跨设备的的远程控制, 不限于PC对PC,移动端对PC








2023年3月25日星期六

最好的人生,都是半醉半醒

   半醉半醒人生并不是每日饮酒半酣,天晕地转,而是历经岁月沉淀,成就的厚重、豁达人生。遇事雾里看花,不较真,不死板,波澜不惊的心态。
生活无需复杂,简单最佳。活好每一天,做好分内之事,做好自己;不妄想,不评判,不纠缠,不纠结,不自以为是即是最好。
生活中无需人人懂你,有一人最佳;生活中无需事事如意,苦乐才是人生;生活中人无完人,缺憾才尽显生活之美。

   曾遇过这样一人,看谁皆不顺眼:不是败家子,就是缺心眼;不是忘恩负义,就是道德败坏;不是精明算计,就是小肚鸡肠,总之他看谁都有缺点。
最终,这人一生没有一个朋友,久而久之患上了抑郁症,导致神经失常,终此一生,悲哀至极。
为人只要诚实守信,有责任心,善待万物,基本是位可交之人,友情无需太过苛刻。
   水清则无鱼,人清则无友,万事半醉半醒为宜。看清而不看破,看穿而不戳穿,就是做人的最高境界。
朦朦胧胧才会产生美,若即若离才会吸引人。

   小月与她的闺蜜合伙开了一家美容院,事业刚起步二人努力经营,店里的生意风生水起。后来,小月发现店里账目不对,怀疑她的朋友在里面做了手脚,又不好明说。

   小月知道,撕破脸皮对谁都没有好处,还不如趁早退出,各干各的。于是,与闺蜜商议清算成本,自己退出。此后,二人关系虽大不如从前,但亦没有导致二人感情破裂。
   朋友之间,关系太远,感情会逐渐淡化;关系太近,又容易产生隔阂。因此,半醉半醒才是最好的人生状态。
交友学之长处,避其短处,这才是最高级的处世之道。学其长补己短,避其短而增己长。既增长了自己的才能,又不会与友关系太远,何乐而不为呢?
   人人大可不必觉得众人皆醉我独醒。其实,皆世人并没醉,只缘身在此山中。
   做人似醉非醉,即使醉,便醉在广袤的学海中,醉在音乐的天堂中,岂不更美?其实吃亏是福、难得糊涂、似醉非醉之人才是世间高人。

半醉半醒恰如中年。刚柔并济,不温不火,懂得责任是必修课程,懂得感恩才是处事良方。学会半醉半醒,人生中的秋天才会硕果累累,满园飘香,才是人生最迷人的季节。

   半醉半醒,讲究的是度。度,即是事不可逾,逾则无益;大千世界,阴阳平衡,男女老少,严冬酷暑,水火并生,日升月落,喧嚣静谧,世间万物各有生存法则,若超越了度,打破自然平衡,世间自无安宁。
每个细微的生命皆是美丽而动人的。看那枝头啾啾鸣叫的小鸟,看那又蹦又跳可爱的生灵,世间有了万物才会如此生机盎然,才会让我们心灵深处萌动最动情的大爱。
   人到中年,上有老,下有小,为了生活四处奔波,辛苦劳累。累的时候将心靠岸,停泊于温馨醉人的港湾。
半醉半醒,可以忘却人世间的忧愁困惑,烦恼痛苦。半醉半醒可以将自己清零,重新认识自己,重新记忆时间。

   半醉半醒,可以洗却人生浮华。在云卷云舒的时光中陶冶自己的情操,洗去陈年苦涩。
半醉半醒,懂得自己本没有那么坚强。装作坚强的心里面是一个脆弱的灵魂。这颗灵魂经不起大风大浪,经不起滚滚红尘中的人情冷暖,亦经不起亲人的聚散离别。卸下心灵的包袱,让疲惫的灵魂找到回家的归路,半醉半醒才是最好的人生状态。


2023年3月21日星期二

在Ubuntu 22.04 上安装 Xrdp 服务器(远程桌面)

 

一、安装桌面环境

Ubuntu 服务器通常使用命令行进行管理,并且默认没有安装桌面环境。如果你正在运行 Ubuntu 桌面版,忽略这一步。

在 Ubuntu 源仓库有很多桌面环境供你选择。一个选择是安装 Gnome,它是 Ubuntu 22.04 的默认桌面环境。另外一个选项就是安装 xfce。它是快速,稳定,并且轻量的桌面环境,使得它成为远程服务器的理想桌面。

运行下面任何一个命令去安装你选择的桌面环境:

  • 安装 Gnome
sudo apt update
sudo apt install ubuntu-desktop
  • 安装 Xfce
sudo apt update
sudo apt install xubuntu-desktop

取决于你的系统,下载和安装 GUI 软件包,将会花费一些时间。

二、安装 Xrdp

Xrdp 被包含在默认的 Ubuntu 软件源中。想要安装它,运行:

sudo apt install xrdp 

一旦安装完成,Xrdp 服务将会自动启动。你可以输入下面的命令,验证它:

sudo systemctl status xrdp

输出将会像下面这样:

● xrdp.service - xrdp daemon
     Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: >
     Active: active (running) since Tue 2023-03-21 08:48:37 UTC; 14s ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
    Process: 71251 ExecStartPre=/bin/sh /usr/share/xrdp/socksetup (code=exited,>
    Process: 71259 ExecStart=/usr/sbin/xrdp $XRDP_OPTIONS (code=exited, status=>
   Main PID: 71260 (xrdp)
      Tasks: 1 (limit: 2253)
     Memory: 924.0K
        CPU: 25ms
     CGroup: /system.slice/xrdp.service
             └─71260 /usr/sbin/xrdp

默认情况下,Xrdp 使用/etc/ssl/private/ssl-cert-snakeoil.key,它仅仅对“ssl-cert” 用户组成语可读。运行下面的命令,将xrdp用户添加到这个用户组:

sudo adduser xrdp ssl-cert  

重启 Xrdp 服务,使得修改生效:

sudo systemctl restart xrdp

就这样。Xrdp 已经在你的 Ubuntu 服务器上安装好了,你可以开始使用它了。

三、Xrdp 配置

Xrdp 配置文件定位在/etc/xrdp目录。对于基本的 Xrdp 链接,你不需要对配置文件做任何改动。

Xrdp 使用默认的 X Window 桌面环境()Gnome or XFCE)。

主要的配置文件被命名为 xrdp.ini。这个文件被分成不同的段,允许你设置全局配置,例如安全,监听地址,创建不同的 xrdp 登录会话等。

不管什么时候你对配置文件做出修改,你需要重启 Xrdp 服务。

Xrdp 使用startwm.sh文件启动 X 会话。如果你想使用另外一个 X Window 桌面,编辑这个文件。

四、配置防火墙

Xrdp 守护程序在所有的网络接口上监听端口3389。如果你在你的 Ubuntu 服务器上运行一个防火墙,你需要打开 Xrdp 端口。

想要允许从某一个指定的 IP 地址或者 IP 范围访问 Xrdp 服务器,例如192.168.1.2/24,你需要运行下面的命令:

sudo ufw allow from 192.168.1.2/24 to any port 3389

如果你想允许从任何地方访问(由于安全原因,这种方式不鼓励),运行:

sudo ufw allow 3389

想要增加安全,你可以考虑 Xrdp 仅仅监听 localhost,并且创建一个 SSH 隧道,将本地机器的3389端口到远程服务器的同样端口之间的流量加密。

五、连接 Xrdp 服务器

现在你已经设置好你的 Xrdp 服务器,是时候打开你的 Xrdp 客户端并且连接到服务器。

如果你有一台 Windows 电脑,你可以使用默认的 RDP 客户端。在 Windows 搜索栏输入“remote”,并且点击“Remote Desktop Connection”。这将会打开一个 RDP 客户端。在“Computer”区域输入远程服务器 IP地址,并且点击“Connect”。

在登录屏幕,输入你的用户名和密码,点击“OK”。

一旦登录,你将看到默认的 Gnome 或者 Xfce 桌面,它应该像下面这样:

现在你可以从你的本地机器上使用你的键盘和鼠标和远程桌面进行交互了。

2023年3月20日星期一

关闭Microsoft Edge右上角的发现图标

推荐方法:直接打开“命令提示符”,输入以下代码回车即可。

reg add HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge /v HubsSidebarEnabled /t REG_DWORD /d 0x00000000 /f

也可以将以下代码保存,修改后缀为:.reg,也可以下载我做好的,在文末附件中。然后双击执行即可,同样的里面也包含了其他几个配置如果觉得不需要可以只保留"HubsSidebarEnabled"=dword:00000000"这组,其他的可以参考上面的描述文件代码注释,可以参考策略官方文档。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge]
"DiagnosticData"=dword:00000000
"EdgeCollectionsEnabled"=dword:00000000
"EdgeShoppingAssistantEnabled"=dword:00000000
"HubsSidebarEnabled"=dword:00000000
"PersonalizationReportingEnabled"=dword:00000000
"ShowMicrosoftRewards"=dword:00000000