• modify_extension.bat bat 修改文件扩展名,jpeg 改为 jpg
    netnr 2024-11-27 13
    @echo off
    setlocal enabledelayedexpansion
    
    for %%f in (*.jpeg) do (
        set "filename=%%~nf"
        ren "%%f" "!filename!.jpg"
    )
    
    endlocal
  • mysqlbinlog.sh mysql binlog 日志查询
    netnr 2024-07-09 332
    # 根据时间范围查询
    # -vv 查看二进制日志
    # 保证 binlog.0000xx 包含日期
    
    mysqlbinlog -vv --start-datetime="2024-07-09 10:13:39" --stop-datetime="2024-07-09 10:13:40" /var/lib/mysql/mysql-bin.000024
    
    # 根据位置过滤
    mysqlbinlog --start-position=123 --stop-position=456 /var/lib/mysql/mysql-bin.000001
    
    # 二进制日志文件名称
  • mongodb-started.md MongoDB 安装、上手
    netnr 2024-07-09 319
    ### 安装
    ```
    vi /etc/yum.repos.d/mongodb-org-7.0.repo
    ```
    创建,输入以下内容
    ```
    [mongodb-org-7.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/
    gpgcheck=1
  • install-clickhouse.sh 安装 ClickHouse
    netnr 2024-04-05 342
    # ref https://clickhouse.com/docs/en/install
    
    # docker 方式
    docker run --restart=always --name clickhouse \
      --ulimit nofile=262144:262144 \
      --volume=$PWD/data:/var/lib/clickhouse \
      -p 8123:8123 \
      -p 9000:9000 \
      -e CLICKHOUSE_USER=default \
      -e CLICKHOUSE_PASSWORD=123456 \
  • autorun.inf 制作U盘图标
    netnr 2024-03-13 310
    # 在 U盘 根目录新建 autorun.inf 文件并添加如下内容
    [autorun]
    icon=autorun.ico
    
    # 在根目录放置图标文件 autorun.ico
    # 配置完成后下次才开始生效
    
    # 设置系统级隐藏文件,避免误删
    attrib +H +S autorun.inf
    attrib +H +S autorun.ico
  • install-dm.sh 安装达梦数据
    netnr 2024-02-28 313
    # 方式一:Docker 安装
    # 下载 docker 包并载入
    docker load -i dm8_20230808_rev197096_x86_rh6_64_single.tar
    # 启动,默认账号密码 SYSDBA/SYSDBA001
    docker run -d -p 5236:5236 --name dm8 --privileged=true --restart=always \
    -e CASE_SENSITIVE=0 \
    -e UNICODE_FLAG=1 \
    -e LENGTH_IN_CHAR=1 \
    -e PAGE_SIZE=16 \
    -e LD_LIBRARY_PATH=/opt/dmdbms/bin \
  • mysql_general_log.sh MySQL 日志切割并存档
    netnr 2023-09-11 313
    #!/bin/bash
    
    # 日志文件路径、存档目录
    log_path="/package/mysqldata"
    archive_directory="/package/mysqldata/archive"
    
    mkdir -p ${archive_directory}
    # 移动日志文件到存档目录
    mv ${log_path}/general.log ${archive_directory}/general_$(date +%Y%m%d_%H%M%S).log
  • dpkg.sh 打包 deb
    netnr 2023-09-05 327
    # 结构
    pack_deb
    - DEBIAN # 打包配置文件夹
        - control # 必需,软件包的元数据信息,如名称、版本、作者、依赖关系等。
        - postinst # 安装后执行
        - postrm # 卸载后执行
    - opt/xops_server # 待打包软件目录,安装路径为 /opt/xops_server
    
    
    # 打包
  • nginx_log_slice.sh nginx 切割日志文件
    netnr 2023-03-24 327
    ## 创建一个 /home/root/nginx_log_slice.sh 文件,粘贴以下内容
    
    # 日志路径
    log_path=/package/log/
    # pid路径
    pid_path=/usr/local/nginx/logs/nginx.pid
    
    # 当天 yyyy-MM-dd
    today=$(date -d "now" +%Y%m%d)
  • ProxyChains.sh Linux 局部代理
    netnr 2023-03-01 330
    # 下载
    git clone https://github.com/rofl0r/proxychains-ng
    cd proxychains-ng
    # 安装 dnf install make gcc
    ./configure --prefix=/usr --sysconfdir=/etc
    make && make install && make install-config
    # 不安装运行
    ./proxychains4 -f src/proxychains.conf telnet google.com 80
    
    # 一键安装
  • download-pack.sh 利用服务器下载离线安装包
    netnr 2023-02-16 313
    # 以安装 openjdk-8-jre 为例
    apt search openjdk-8-jre # 搜索包
    # 仅下载,deb 包默认放到 /var/cache/apt/archives 目录内
    apt-get install -d -y openjdk-8-jre # 仅下载
    
    ls /var/cache/apt/archives # 查看目录
    
    # 打包目录
    cd /var/cache/apt && tar -zcvf openjdk-8-jre.tar.gz archives/
    # 拷贝包到需要安装的服务器, U盘或 scp -P 22 openjdk-8-jre.tar.gz remote_username@10.10.0.2:/remote_directory
  • linux-file.sh linux 文件相关命令
    netnr 2023-02-16 35
    ls # 查看文件列表
    ls -lh # 列表
    ls -lh --time-style=long-iso # 时间格式化 yyyy-mm-dd hh:mm:ss
    ls -lh --time-style '+%Y/%m/%d %H:%M:%S' # 自定义时间格式
    
    ls -lhS  # 由大到小排序
    ls -lhSr # 从小到大排序
    ls -lht  # 从新到旧
    ls -lhtr # 从旧到新
  • oracle-archivelog.sh Oracle 归档日志
    netnr 2023-02-16 50
    # 进入 oracle 用户
    su - oralce
    
    # 查看归档
    SQL> archive log list;
    # 查看归档路径及大小限制
    SQL> show parameter recover;
    # 看看归档日志(按百分比),超 90% 随时有宕机的危险
    SQL> select * from v$flash_recovery_area_usage;
    SQL> select * from v$recovery_file_dest;
  • asciinema-demo.cast asciinema demo https://github.com/asciinema/asciinema
    netnr 2023-02-16 43
    {"version": 2, "width": 81, "height": 20}
    [0.006808, "o", "> "]
    [0.8880290000000001, "o", "#"]
    [0.9601360000000001, "o", " "]
    [1.160145, "o", "W"]
    [1.343879, "o", "e"]
    [1.53569, "o", "l"]
    [1.631953, "o", "c"]
    [1.735633, "o", "o"]
    [1.808077, "o", "m"]
  • netstat-nc-iftop.sh netstat nc iftop 网络工具
    netnr 2022-10-26 329
    yum install net-tools # 安装 netstat
    yum install nc.x86_64 # 安装 nc
    
    apt install netcat # 安装 nc
    
    # 查看占用端口
    netstat -tunlp
    
    # tcp6 包含 ipv4? ref: https://unix.stackexchange.com/questions/496137
    cat /proc/sys/net/ipv6/bindv6only
  • boot.sh 开机启动
    netnr 2022-09-23 42
    # Windows 配置注册表(regedit)路径,用户登录后执行
    # 当前用户
    # HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    # 系统
    # HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    # 右键 》新建 》字符串值 》输入 key 和启动程序路径带参数
    
    
    # crontab 启动
    @reboot sleep 30; /home/root/boot.sh
  • MySQL-Encryption.sql MySQL 数据加密、解密
    netnr 2022-07-05 49
    -- 旧版本加密、解密(已弃用)
    INSERT INTO users (username, password) VALUES ('john', ENCODE('guessme', 'salt')); -- 写入加密
    SELECT username, DECODE(password,'salt') AS password FROM users WHERE username = 'john'; -- 查询解密
    
    -- 新版本加密、解密(安全级别、性能高)
    INSERT INTO users (username, password) VALUES ('steven', aes_encrypt('password', 'salt')); -- 写入加密
    SELECT username, aes_decrypt(password,'salt') AS password FROM users WHERE username = 'steven';  -- 查询解密
    
    SET block_encryption_mode = 'aes-256-cbc'; -- 修改加密模式
    -- 或添加到配置文件 /etc/my.cnf 重启服务
  • install-onlyoffice.sh 一键安装 ONLYOFFICE
    netnr 2022-05-31 348
    echo "### 安装 wget unzip"
    yum install wget unzip -y
    echo "### 移除旧的 oo"
    docker stop oo -t 0
    docker rm oo
    docker rmi onlyoffice/documentserver # 删除 oo 镜像
    rm -rf /home/onlyoffice/ # 清除目录
    echo "### 创建 oo 目录映射"
    mkdir -p /home/onlyoffice/logs && cd /home/onlyoffice/ && mkdir data lib db && pwd && ls # 创建目录
    docker info
  • backup_sqlserver.sh SQLServer 备份脚本 Linux
    netnr 2022-03-22 49
    # 配置参数(开始)===
    
    ymd=$(date +%Y%m%d)
    echo "日期:$ymd"
    echo
    keepday=5
    echo "保留最近天数:$keepday"
    echo
    dirsync="/package/autosync/sync"
    echo "同步目录:$dirsync"
  • backup_sqlserver.bat SQLServer 备份脚本 Windows
    netnr 2022-03-22 330
    @echo off
    
    :: 配置参数(开始)===
    
    set ymd=%date:~0,4%%date:~5,2%%date:~8,2%
    echo 日期:%ymd%
    echo.
    set keepday=15
    echo 保留最近天数:%keepday%
    echo.
  • git filter-branch.sh GitHub 泄露密钥,彻底删除历史记录
    netnr 2022-03-04 355
    git filter-branch --force --index-filter "git rm --cached --ignore-unmatch -r 要删除的文件" --prune-empty --tag-name-filter cat -- --all
    # 遍历所有 commit,删除文件,重写历史 commit,项目顶层执行
    
    git push origin --all --force # 强行远程推送
  • PostgreSQL-Manager.sql PostgreSQL 用户授权
    netnr 2022-02-08 326
    -- 创建用户
    CREATE USER dbUser WITH PASSWORD 'Abc123....';
    
    -- 数据库授权用户,此时用户还是没有读写权限,需要授权表
    GRANT ALL PRIVILEGES ON DATABASE dbName TO dbUser;
    
    -- 当前数据库下 public schema 的表都授权给 dbUser
    GRANT ALL PRIVILEGES ON all tables in schema public TO dbUser;
    
    -- 指定表授权
  • tcping Linux TCP ping
    netnr 2022-01-18 327
    apt-get install tcptraceroute -y # 依赖
    
    # 一键安装
    wget -O /usr/bin/tcping https://raw.githubusercontent.com/deajan/tcpping/master/tcpping && chmod 755 /usr/bin/tcping
    wget -O /usr/bin/tcping http://www.vdberg.org/~richard/tcpping && chmod 755 /usr/bin/tcping # 另一个源
    
    
    # help
    https://github.com/deajan/tcpping
  • file-split.sh 文件切割、合并
    netnr 2021-11-24 8
    split -l 100000 -d access.log part/access_ --verbose # 按行切割
    split -b 100m access.log -d part/access_ --verbose # 按字节大小切割
    
    cat part/access_* > access.log  # 合并
    cat part.mp4 >> main.mp4        # 追加 part.mp4 到 main.mp4 末尾
    bash -c "cat part.mp4 >> main.mp4" >> /dev/null # 静默执行