分类 教程 下的文章

配置环境

系统环境: Ubuntu-22.04-amd64
用户: root

(可选)国内主机换清华源

    sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
    
    sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

修复libssl.so.1.1: cannot open shared object file

由于Ubuntu 22.04 默认使用openssl3.0.* ,但大多为Ubuntu生成的可执行文件依赖openssl 1.1

    wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz &&  tar xvf openssl-1.1.1q.tar.gz && cd openssl-1.1.1q && apt install -y perl gcc make && ./config && make &&  make install  && echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib" >> /etc/profile  && source /etc/profile

更新并获取所需软件包

 apt-get update && apt-get upgrade -y  &&  apt install python3-dev  python3-pip ffmpeg nodejs  -y && pip3 install biliup quickjs certifi
    
    mkdir /root/biliup && cd /root/biliup 
    
    wget -O biliupR.tar.xz https://github.com/biliup/biliup-rs/releases/download/$(curl -Ls "https://api.github.com/repos/biliup/biliup-rs/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')/biliupR-$(curl -Ls "https://api.github.com/repos/biliup/biliup-rs/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')-x86_64-linux.tar.xz && tar -xvf biliupR.tar.xz && mv -fb ./biliupR*/* ./  && rm -rf ./biliupR*

    vim config.toml   #粘贴下面配置文件 自行修改
# 选择全局默认上传插件,Noop为不上传,但会执行后处理,可选bili_web,biliup-rs
    #uploader = "Noop"
    # 选择全局默认的下载插件,默认为stream-gears。可选ffmpeg与stream-gears。
    #downloader= "ffmpeg"
    # b站上传线路选择,默认为自动模式,目前可手动切换为bda2, kodo, ws, qn, cos, cos-internal(支持腾讯云内网免流+提速)
    lines = "AUTO"
    # 单文件并发上传数,未达到带宽上限时增大此值可提高上传速度
    threads = 3
    # 录像单文件大小限制,单位Byte,超过此大小分段下载
    file_size = 2621440000
    # 录像单文件时间限制,格式'00:00:00'(时分秒),超过此大小分段下载,如需使用大小分段请注释此字段
    #segment_time = '00:50:00'
    filtering_threshold = 20 # 小于此大小的视频文件将会被过滤删除,单位MB
    # 如遇到斗鱼录制卡顿可以尝试切换线路,tct-h5(备用线路5),ali-h5(备用线路6),akm-h5(主线路1)
    #douyucdn = "tct-h5"
    # 如遇到虎牙录制卡顿可以尝试切换线路,AL, HW, TX, WS
    #huyacdn = "AL"
    # 自定义录播文件名模板, 支持变量 {streamer}:你在配置里设置的直播间名 %Y-%m-%d %H_%M_%S:创建文件的时间, {room_title}:当场直播间标题
    # 如果上传文件,文件名必须包含设定的模板名。其次,如果没有定义时间,文件分片可能会互相覆盖,所以推荐设置时间来避免分段文件名重复。
    #filename_prefix = '{streamer}%Y-%m-%d %H_%M_%S{room_title}'
    # 哔哩哔哩直播流协议.可选 stream(Flv)、hls
    #bili_protocol = "stream"
    # 哔哩哔哩直播优选CDN
    #bili_perfCDN = "cn-gotcha01"
    # 哔哩哔哩直播强制原画(仅限HLS流的 cn-gotcha01 CDN)
    #bili_forceScoure = false
    # 自定义哔哩哔哩直播api
    #bili_liveapi = "https://api.live.bilibili.com"
    # CDN自动Fallback开关,默认为开启
    #bili_cdn_fallback = true
    # 检测到主播下播后延迟再次检测,单位:秒,避免特殊情况提早启动上传导致漏录
    delay = 10
    # 检测间隔时间,单位:秒
    event_loop_interval = 40
    # 相同平台检测间隔,单位:秒。不同平台的链接是并发的,不受此参数影响
    checker_sleep = 15
    # 线程池1大小,负责download事件
    pool1_size = 3
    # 线程池2大小,处理除download事件外所有其他事件
    pool2_size = 3
    # 检测源码文件变化间隔,单位:秒,检测源码到变化后,程序会在空闲时自动重启
    check_sourcecode = 15
    #------YouTube------#
    ### 设置偏好的YouTube下载封装格式
    ### 请务必记得安装ffmpeg
    ### 支持同时添加多个编码,自动优选指定编码格式里最好的画质/音质版本。
    ### 视频:其中avc编码最高可以下载到1080p的内容,vp9最高可以下载到4k以及很少部分8k内容,av01画质不是所有视频都有,但是大部分8k视频的8k画质只有av01编码。
    ### 音频:其中opus编码最高48KHz采样,mp4a(AAC)最高44.1KHz采样,理论上来说opus音质会更好一些。
    ### 如需指定封装格式,请按以下推荐设置。mp4:avc+mp4a;av01+mp4a. mkv:vp9+mp4a,avc+opus. webm:av01+opus;vp9+opus.
    #youtube_prefer_vcodec = "av01|vp9|avc" ### 可用av01,vp9,avc
    #youtube_prefer_acodec = "opus|mp4a" ### 可用opus,mp4a
    ### 设置偏好的YouTube下载最高纵向分辨率
    ### 最高纵向分辨率,也就是xxxxP.如果youtube_prefer_format指定为mp4,将最高只能下载1080p的视频。
    #youtube_max_resolution = "440" 
    ### 限制单个视频的最大大小。
    ### 注意:此参数优先级高于分辨率设置,并且不包括音频部分的大小,仅仅只是视频部分的大小。
    ### 如果某个视频实在没有低于此大小的分辨率版本,将会选择最低画质的版本下载。
    #youtube_max_videosize = "5G"  ###参考格式,例如100M,5G,10G。
    
    [user]
    # 如需要录制抖音请在此填入cookie需要__ac_nonce与__ac_signature的值
    douyin_cookie = '__ac_nonce=123456; __ac_signature=123456;'
    # 如录制Twitch时遇见视频流中广告过多的情况,可尝试在此填入cookie,可以大幅减少视频流中的twitch广告(经测试需要在该Cookie所属账号开了TwitchTurbo会员才有用),该cookie有过期风险,cookie过期后会导致无法获取到直播流
    # twitch_cookie获取方式:在浏览器中打开Twitch.tv,F12调出控制台,在控制台中执行:document.cookie.split("; ").find(item=>item.startsWith("auth-token="))?.split("=")[1]
    # twitch_cookie需要在downloader= "ffmpeg"时候才会生效
    #twitch_cookie = 'asdiouo2h987r23hf2893fh923y7'
    # Netscape 格式的 Cookies 文本路径
    #youtube_cookie = 'cookiejar.txt'
    
    # 最小配置示例
    [streamers."星际2Stats拔本神族天梯第一视角"]
    url = ["https://www.twitch.tv/kimdaeyeob3"]
    
    # 完整可选配置示例
    [streamers."星际2INnoVation吕布卫星人族天梯第一视角"]
    url = [
      "https://www.twitch.tv/innovation_s2",
      "https://www.panda.tv/1160340"
    ]
    title = "{title}第一视角%Y-%m-%d{streamers}" # 自定义标题的时间格式, {title}代表当场直播间标题 {streamers}代表在本config里面设置的主播名称
    tid = 171 # 投稿分区码,171为电子竞技分区
    copyright = 2 # 1为自制
    # cover_path = "/cover/up.jpg"
    # 支持strftime, {title},{streamers}占位符。
    description = """
    视频简介: {title} %Y-%m-%d %H:%M:%S{streamers}
    ---
    Powered By biliup - Github: https://github.com/ForgQi/biliup"""
    dynamic = "#空间动态#"
    # dtime = 14_400 # 设置延时发布时间,距离提交大于2小时,格式为时间戳
    uploader = "biliup-rs"  # 覆盖全局默认上传插件,Noop为不上传,但会执行后处理
    #filename_prefix = '{streamer}%Y-%m-%d %H_%M_%S{room_title}'  # 覆盖全局自定义录播文件命名规则
    user_cookie = "cookies.json" # 使用指定的账号上传
    tags = [ "biliup", "视频标签" ]
    # 上传完成后,将按自定义顺序执行自定义操作
    #postprocessor = [
    #    {run = "echo hello!"}, # 执行任意命令,等同于在shell中运行,视频文件路径作为标准输入传入
    #    {mv = "backup/"}, # 移动文件到backup目录下
    #    {run = "python3 path/to/mail.py"}, # 执行一个 Python 脚本,可以用来发送邮件等。自动发信通知脚本示例 https://biliup.github.io/biliup/Guide.html#%E4%B8%8A%E4%BC%A0%E5%AE%8C%E6%88%90%E5%90%8E%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E9%80%9A%E7%9F%A5
    #    {run = "sh ./run.sh"} # 执行一个shell脚本,用途多样,主要调用系统内的cli工具。自动上传网盘脚本示例 https://gist.github.com/UVJkiNTQ/ae4282e8f9fe4e45b3144b57605b4178
    ##    'rm',  # 删除文件,为默认操作
    #]
    
    # 日志输出配置
    [LOGGING.formatters.verbose]
    format = "%(asctime)s %(filename)s[line:%(lineno)d](Pid:%(process)d Tname:%(threadName)s) %(levelname)s %(message)s"
    datefmt = "%Y-%m-%d %H:%M:%S"
    
    [LOGGING.formatters.simple]
    format = "%(filename)s%(lineno)d[%(levelname)s]Tname:%(threadName)s %(message)s"
    
    [LOGGING.handlers.console]
    level = "DEBUG"
    class = "logging.StreamHandler"
    formatter = "simple"
    stream = "ext://sys.stdout"
    
    [LOGGING.handlers.file]
    level = "DEBUG"
    class = "biliup.common.log.SafeRotatingFileHandler"
    when = "W0"
    interval = 1
    backupCount = 1
    filename = "ds_update.log"
    formatter = "verbose"
    
    [LOGGING.root]
    handlers = [ "console" ]
    level = "INFO"
    
    [LOGGING.loggers.biliup]
    handlers = [ "file" ]
    level = "INFO"

biliup开启边录边传

echo n | pip3 uninstall biliup #查找biliup所在位置
    
    cd path to biliup
    
    vim handler.py
    输入 / def modify(self, url): 回车 定位到modify模块
    将  if self.url_status[url] == 2:
          return logger.debug('正在上传稍后下载')
          注释(在句首加#)

使用biliup-rs配置cookies.json 并启动biliup

    ./biliup login                                                      #选择扫码登录
    biliup start

一些命令

    ps -A | grep biliup                                           #查看进程是否启动成功
    
    biliup start                                                        #启动
    
    biliup stop                                                       #退出
    
    biliup restart                                                      #重启
    
    biliup --version                                                #查看版本
    
    biliup -h                                                             #显示帮助以查看更多选项
    
    biliup --http start                                                 #启动 web ui, 默认 0.0.0.0:19159。 可使用-H及-P选项配置。考虑到安全性,建议指定本地地址配合web server或者添加验证。
    
    biliup --config ./config.yaml start                      #指定配置文件路径
    
    pip3 install --upgrade biliup                            #升级biliup
    
    #biliup-rs:
    biliup help upload
    USAGE:
        biliup.exe upload [OPTIONS] [VIDEO_PATH]...
    
    ARGS:
        <VIDEO_PATH>...                                       需要上传的视频路径,若指定配置文件投稿不需要此参数
    
    OPTIONS:
        -c, --config <FILE>                                     Sets a custom config file
            --copyright <COPYRIGHT>                 是否转载 1 原创 2 转载 [default: 1]
            --cover <COVER>                                视频封面 
            --desc <DESC>                                       视频简介
            --dtime <DTIME>                                   延时发布时间,距离提交大于4小时,格式为10位时间戳
            --dynamic <DYNAMIC>                         空间动态 
        -h, --help                                                    Print help information
        -l, --line <LINE>                                        上传线路,支持kodo, bda2, qn, ws
            --limit <LIMIT>                                      单视频文件最大并发数 [default: 3]
            --source <SOURCE>                              是转载来源 
            --tag <TAG>                                          视频标签
            --tid <TID>                                          投稿分区 [default: 171]
            --title <TITLE>                                       视频标题

创建 Aliyun镜像仓库

首先根据aliyun官方文档创建位于 中国香港的镜像仓库:文档地址

登录Google Cloud Shell拉取镜像

docker pull  images 
docker images  #记下需要推送的ImageId

推送镜像到阿里云镜像仓库

docker login --username=用户名  registry.cn-hongkong.aliyuncs.com           #登录仓库
docker tag [ImageId] registry.cn-hongkong.aliyuncs.com/命名空间/仓库名称:[镜像版本号]
docker push registry.cn-hongkong.aliyuncs.com/命名空间/仓库名称:[镜像版本号]

境内服务器快速拉取镜像

docker pull registry.cn-hongkong.aliyuncs.com/命名空间/仓库名称:[镜像版本号]

参考文档

1.使用GoogleCloudShell解决99%的镜像拉取问题
2.使用个人版实例推送拉取镜像
3.Docker基本操作

Win修改网络适配器网络名称

注册表定位到
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles文件夹下
选择需要修改的网络适配器即可

Docker安装

Ubuntu

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Debian

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

卸载docker

sudo apt remove docker-desktop
    rm -r $HOME/.docker/desktop
    sudo rm /usr/local/bin/com.docker.cli
    sudo apt-get remove docker docker-engine docker.io containerd runc
    sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin             
    docker-ce-rootless-extras
    #删除映像、容器,卷
    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd

配置docker镜像源

mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": [
        "https://0b27f0a81a00f3560fbdc00ddd2f99e0.mirror.swr.myhuaweicloud.com",
        "https://ypzju6vq.mirror.aliyuncs.com",
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn"
      ]
    }
    EOF
    systemctl daemon-reload
    systemctl restart docker

安装docker-compose

curl -L "https://github.com/docker/compose/releases/download/$(curl -Ls         "https://api.github.com/repos/docker/compose/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')/docker-compose-linux-x86_64" -o /usr/bin/docker-compose

chmod +x /usr/bin/docker-compose

Docker应用部署

Microsoft 365 E5 Renew X

docker run -d -p 1066:1066 -e TZ=Asia/Shanghai --name RenewX  gladtbam/ms365_e5_renewx:latest
    docker exec -it ms365 /bin/bash
    cd Deploy
    vim Config.xml

Bitwardenrs

docker run -d  --restart unless-stopped  -e ADMIN_TOKEN=password -e     WEBSOCKET_ENABLED=true -v /Bitwarden:/data/ -p 5418:80 -p 3012:3012 --name     bitwardenrs vaultwarden/server:latest

    docker stop bitwardenrs

    docker rm -f bitwardenrs

    docker run -d  --restart unless-stopped  -e ADMIN_TOKEN=password -e SIGNUPS_ALLOWED=false -e WEBSOCKET_ENABLED=true -v /Bitwarden:/data/ -p 5418:80 -p 3012:3012 --name bitwardenrs vaultwarden/server:latest
    password.json

Cloudreve

cd /root

    mkdir cloudreve

    cd cloudreve

    mkdir -vp cloudreve/{uploads,avatar} \
    && touch cloudreve/conf.ini \
    && touch cloudreve/cloudreve.db \
    && mkdir -p aria2/config \
    && mkdir -p data/aria2 \
    && chmod -R 777 data/aria2

    vim docker-compose.yml

    version: "3.8"
    services:
      cloudreve:
        container_name: cloudreve
        image: cloudreve/cloudreve:latest
        restart: unless-stopped
        ports:
          - "5212:5212"
        volumes:
          - temp_data:/data
          - ./cloudreve/uploads:/cloudreve/uploads
          - ./cloudreve/conf.ini:/cloudreve/conf.ini
          - ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
          - ./cloudreve/avatar:/cloudreve/avatar
        depends_on:
          - aria2
      aria2:
        container_name: aria2
        image: p3terx/aria2-pro
        restart: unless-stopped
        environment:
          - RPC_SECRET=Badgirl.
          - RPC_PORT=6800
        volumes:
          - ./aria2/config:/config
          - temp_data:/data
    volumes:
      temp_data:
        driver: local
        driver_opts:
          type: none
          device: $PWD/data
          o: bind

    docker-compose up -d

    docker-compose down

    docker pull cloudreve/cloudreve  #拉取新镜像

签到面板

docker run -d --name qiandao -p 8923:80 -v     $(pwd)/qiandao/config:/usr/src/app/config a76yyyy/qiandao

    mkdir /root/qddb && docker cp qiandao:/usr/src/app/config/database.db     /root/qddb/database.db #备份数据库

    docker cp database.db qiandao:/usr/src/app/config/ #恢复数据库

青龙面板

docker run -dit \
  -v /root/ql/data:/ql/data \
  -p 5700:5700 \
  -m 512m \
  --cpus=0.2 \
  --memory-reservation=256m \
  --name qinglong \
  --hostname qinglong \
  --restart unless-stopped \
  whyour/qinglong:2.11.3

# Dailycheckin

docker exec -it qinglong bash 

apk add --no-cache gcc g++ python3-dev py-pip mysql-dev linux-headers libffi-dev         openssl-dev

pip3 install dailycheckin --upgrade

mkdir /ql/scripts && touch /ql/scripts/config.json && vi /ql/scripts/config.json       #写入配置文件

新建任务
名称 dailycheckin 
命令 task dailycheckin
cron 0 8 * * * 

# 京东拉库

ql repo https://github.com/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp"     "^jd[^_]|USER|utils|function|sign|sendNotify|ql|magic|JDJR"
0 */12 * * *

ql repo https://github.com/zero205/JD_tencent_scf.git "jd_|jx_|jdCookie"     "backUp|icon" "^jd[^_]|USER|sendNotify|sign_graphics_validate|JDJR|JDSign|ql" "main"
0 */12 * * *

ql repo https://github.com/gys619/jdd.git "jd_|jx_|jddj_|gua_|getJDCookie|wskey"     "activity|backUp"     "^jd[^_]|USER|utils|ZooFaker_Necklace|JDJRValidator_|sign_graphics_validate|jddj_coo    kie|function|ql|magic|JDJR|JD" "main"
0 */12 * * *

ql repo https://github.com/ccwav/QLScript2.git "jd_" "NoUsed" "ql|sendNotify"
0 */12 * * *

ql repo https://github.com/smiek2121/scripts.git "gua_" ""     "ZooFaker_Necklace.js|JDJRValidator_Pure.js|sign_graphics_validate.js|cleancart_acti    vity.js|jdCookie.js|sendNotify.js"
0 */12 * * *

ql repo https://github.com/okyyds/yyds.git "jd_|jx_|gua_|jddj_|jdCookie"     "activity|backUp"     "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_gra    phics_validate|ql|JDSignValidator" "master"

ql repo https://github.com/okyyds/yydspure.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_gra    phics_validate|ql|JDSignValidator" "master"
0 */12 * * *

ql repo https://github.com/shufflewzc/faker3.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_gra    phics_validate|ql|JDSignValidator" "main"
0 */12 * * *

依赖
NodeJS    axios  png-js jsdom  date-fns moment
Python3    PyExecJS

变量
JD_COOKIE=[pt_key=xxx; pt_pin=xxx;pt_token=xxx;]

#BiliBili
新建任务
名称 B站拉库
命令 ql repo https://github.com/RayWangQvQ/BiliBiliToolPro.git "bili_task_" 
cron * * * 31 12 *

变量
Ray_DailyTaskConfig__NumberOfCoins=     #投币数量
Ray_Serilog__WriteTo__11__Args__corpId=   #企业微信corpId
Ray_Serilog__WriteTo__11__Args__agentId=  #企业微信agentId
Ray_Serilog__WriteTo__11__Args__secret=   #企业微信secret

#爱奇艺
https://github.com/ioutime/Aiqiyi_Sign/blob/master/local_action.py ##源文件

新建脚本文件 iqiyi.py

写入脚本内容

编辑 cookie token

新建任务 

名称 爱奇艺

命令 task iqiyi.py

定时 1 0 * * *

SpeedTest

docker run -d --name st --restart always -p 80:80 adolfintel/speedtest

docker报错

Failed to start docker.service

容器启动时没有设置–restart参数,则通过下面命令进行更新

docker update --restart=always [容器名]

科技lion脚本

curl -sS -O https://raw.githubusercontent.com/kejilion/sh/main/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh

SSHD的配置优化

服务端

vim /etc/ssh/sshd_config
    
    PermitRootLogin yes
    PasswordAuthentication yes
    PrintLastLog no
    
    sed -i '/pam_motd.so/ s/^/#/g' /etc/pam.d/sshd
    #重启sshd (三条都可
    service ssh restart
    systemctl restart sshd
    /etc/init.d/ssh restart

客户端

ssh -o ServerAliveInterval=60  username@host

配置ssh密钥登陆

 ssh-keygen -t ed25519
    #四次回车 密钥默认生成路径:~/.ssh/id_ed25519,公钥与之对应为:~/.ssh/id_ed25519.pub
    type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh username@host "cat >> .ssh/authorized_keys" #Windows上的Terminal(使用OpenSSH)
    ssh-copy-id -i ~/.ssh/id_ed25519.pub username@host #Linux

修复openssh-server错误

每次执行apt 命令都会提示

Setting up openssh-server (1:8.4p1-5+deb11u1) …
dpkg: error processing package openssh-server (--configure):
installed openssh-server package post-installation script subprocess was killed by signal (Terminated)
rescue-ssh.target is a disabled or a static unit, not starting it.
Errors were encountered while processing:
openssh-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
三行命令即可修复

    cd /var/lib/dpkg/info
    rm openssh*
    dpkg --configure -a

dpkg 修复命令

dpkg --remove --force-remove-reinstreq 包名
    示例:dpkg --remove --force-remove-reinstreq openssh openssh-server openssh-client

IPTABLES开放所有端口

    iptables -P INPUT ACCEPT   
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT

软连接与硬链接

ln -s file file1 制作一个软连接(file1是一个软连接,指向file)
    ln file file2 制作一个硬连接(file2是一个硬连接,指向file)
    
    软连接相当于快捷方式,存的是路径;
    硬链接则指向文件系统的索引结点(inode),相同的inode值对应磁盘上的同一份文件。
    硬连接file2的inode值和原文件file的inode的值相同,
    软连接file1的inode的值和原文件file的inode的值不相同,软连接file1相当于在磁盘上新建了一个文件,而这个文件的内容是原文件的路径。

python3改为python

    #直接apt install python-is-python3即可
    whereis python
    rm -rf /usr/bin/python
    rm -rf /usr/bin/pip
    ln -s /usr/bin/pip3 /usr/bin/pip
    ln -s /usr/bin/python3 /usr/bin/python #注意这里的python3改为上面whereis python显示安装的python3版本号