常用脚本

常用脚本

一、文件

  1. 文件拷贝
    #!/bin/bash
    # 递归复制/root/apricot目录内容到/root/janer
    SOURCE="/root/apricot"
    TARGET="/root/janer"
    
    # 复制建时间范围内文件
    START="2025-01-01"
    END="2025-05-01"
    # 检查源目录是否存在
    if [ ! -d "$SOURCE" ]; then
        echo "错误:源目录 $SOURCE 不存在"
        exit 1
    fi
    
    # 创建目标目录(如果不存在)
    mkdir -p "$TARGET"
    
    # 创建目标目录(保留权限)
    mkdir -p "$TARGET" && chmod --reference="$SOURCE" "$TARGET"
    
    # 使用find筛选文件并通过rsync同步,使用 '%P\0'去掉根目录地址
    find "$SOURCE" -type f -newermt "$START" ! -newermt "$END" -printf '%P\0' | \
    rsync -a --progress --files-from=- --from0 "$SOURCE"/ "$TARGET"/
    
    # 显示结果
    echo "复制完成:"
    echo "源目录大小: $(du -sh $SOURCE | cut -f1)"
    echo "目标目录大小: $(du -sh $TARGET | cut -f1)"
    

二、netcore

  1. 守护进程
    # 服务配置
    ServiceName="apricot-webapi"
    TARGET_DIR="/opt/apricot-webapi"
    ServiceFile="/etc/systemd/system/${ServiceName}.service"
    
    # 写入服务文件内容
    cat > $ServiceFile <<EOF
    [Unit]
    Description=$ServiceName
    
    [Service]
    WorkingDirectory=$TARGET_DIR
    ExecStart=/usr/bin/dotnet $TARGET_DIR/${ServiceName}.dll
    # 重启间隔(5s)
    RestartSec=5
    # 总是重启
    Restart=always
    User=root
    KillSignal=SIGINT
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
posted @ 2025-05-21 11:31  1764564459  阅读(30)  评论(0)    收藏  举报