Skip to content

定时任务组件

shell
yum install vixie-cron
yum install crontabs
/sbin/service crond start //启动服务  
/sbin/service crond stop //关闭服务  
/sbin/service crond restart //重启服务  
/sbin/service crond reload //重新载入配置 

tail -f /var/log/cron  //查看日志
yum install vixie-cron
yum install crontabs
/sbin/service crond start //启动服务  
/sbin/service crond stop //关闭服务  
/sbin/service crond restart //重启服务  
/sbin/service crond reload //重新载入配置 

tail -f /var/log/cron  //查看日志

crontab编辑定时任务

vim /etc/crontab

shell
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
0 3 * * * root /docker/certbot_renew_ssl.sh >> /docker/certbot_renew_ssl.log
5 6 * * * root /root/web.sh 
1 6 * * * root /root/admin.sh 
9 6 * * * root /root/vitepress.sh 
35 22 * * * root /root/admin.sh
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
0 3 * * * root /docker/certbot_renew_ssl.sh >> /docker/certbot_renew_ssl.log
5 6 * * * root /root/web.sh 
1 6 * * * root /root/admin.sh 
9 6 * * * root /root/vitepress.sh 
35 22 * * * root /root/admin.sh

部署后台

vim /root/web.sh

shell
#!/bin/bash
source /etc/profile

# 只留下最新执行的日志
echo "" > /root/admin.log

# 日志函数
log() {
    local level=$1
    local message=$2
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [${level}] ${message}" >> /root/admin.log
}

# 切换到项目目录
cd /root/ruoyi-vue || { log "ERROR" "Failed to cd to /root/ruoyi-vue"; exit 1; }

# 拉取最新代码
/usr/bin/git  pull --no-edit origin main  >> /root/admin.log 2>&1 || { log "ERROR" "Failed to git pull"; exit 1; }

# maven打包
mvn clean install -Dmaven.test.skip=true >> /root/admin.log 2>&1 || { log "ERROR" "Failed to mvn clean install"; exit 1; }

# 切换到 docker-compose 目录
cd /docker/ruoyi || { log "ERROR" "Failed to cd to /docker/ruoyi"; exit 1; }

# 复制ruoyi-admin.jar
cp  /root/ruoyi-vue/ruoyi-admin/target/ruoyi-admin.jar /docker/ruoyi/ruoyi-admin/jar  || { log "ERROR" "Failed to cd to copy ruoyi-admin.jar"; exit 1; }

# 重启 vitepress 服务
/usr/local/bin/docker-compose restart ruoyi-admin >> /root/admin.log 2>&1 || { log "ERROR" "Failed to restart ruoyi-admin"; exit 1; }

# 记录成功日志
log "INFO" "Script executed successfully"
#!/bin/bash
source /etc/profile

# 只留下最新执行的日志
echo "" > /root/admin.log

# 日志函数
log() {
    local level=$1
    local message=$2
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [${level}] ${message}" >> /root/admin.log
}

# 切换到项目目录
cd /root/ruoyi-vue || { log "ERROR" "Failed to cd to /root/ruoyi-vue"; exit 1; }

# 拉取最新代码
/usr/bin/git  pull --no-edit origin main  >> /root/admin.log 2>&1 || { log "ERROR" "Failed to git pull"; exit 1; }

# maven打包
mvn clean install -Dmaven.test.skip=true >> /root/admin.log 2>&1 || { log "ERROR" "Failed to mvn clean install"; exit 1; }

# 切换到 docker-compose 目录
cd /docker/ruoyi || { log "ERROR" "Failed to cd to /docker/ruoyi"; exit 1; }

# 复制ruoyi-admin.jar
cp  /root/ruoyi-vue/ruoyi-admin/target/ruoyi-admin.jar /docker/ruoyi/ruoyi-admin/jar  || { log "ERROR" "Failed to cd to copy ruoyi-admin.jar"; exit 1; }

# 重启 vitepress 服务
/usr/local/bin/docker-compose restart ruoyi-admin >> /root/admin.log 2>&1 || { log "ERROR" "Failed to restart ruoyi-admin"; exit 1; }

# 记录成功日志
log "INFO" "Script executed successfully"

部署前端

vim /root/web.sh

shell
#!/bin/bash
source /etc/profile

# 只留下最新执行的日志
echo "" > /root/web.log

# 日志函数
log() {
    local level=$1
    local message=$2
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [${level}] ${message}" >> /root/web.log
}

#  切换到项目目录
cd /root/ruoyi-vue/ruoyi-ui || { log "ERROR" "Failed to cd to /root/ruoyi-vue/ruoyi-ui"; exit 1; }

# 拉取最新代码
/usr/bin/git  pull --no-edit origin main  >> /root/web.log 2>&1 || { log "ERROR" "Failed to git pull"; exit 1; }

# npm 打包
npm install --registry=https://registry.npmmirror.com  --force  &&   npm run build:prod  >> /root/web.log 2>&1 || { log "ERROR" "Failed to npm install "; exit 1; }

# 复制ruoyi-ui
rm -rf  /docker/ruoyi/nginx/web/ruoyi-ui/dist
mv  /root/ruoyi-vue/ruoyi-ui/dist /docker/ruoyi/nginx/web/ruoyi-ui/   || { log "ERROR" "Failed to cd to copy ruoyi-ui"; exit 1; }

# 记录成功日志
log "INFO" "Script executed successfully"
#!/bin/bash
source /etc/profile

# 只留下最新执行的日志
echo "" > /root/web.log

# 日志函数
log() {
    local level=$1
    local message=$2
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [${level}] ${message}" >> /root/web.log
}

#  切换到项目目录
cd /root/ruoyi-vue/ruoyi-ui || { log "ERROR" "Failed to cd to /root/ruoyi-vue/ruoyi-ui"; exit 1; }

# 拉取最新代码
/usr/bin/git  pull --no-edit origin main  >> /root/web.log 2>&1 || { log "ERROR" "Failed to git pull"; exit 1; }

# npm 打包
npm install --registry=https://registry.npmmirror.com  --force  &&   npm run build:prod  >> /root/web.log 2>&1 || { log "ERROR" "Failed to npm install "; exit 1; }

# 复制ruoyi-ui
rm -rf  /docker/ruoyi/nginx/web/ruoyi-ui/dist
mv  /root/ruoyi-vue/ruoyi-ui/dist /docker/ruoyi/nginx/web/ruoyi-ui/   || { log "ERROR" "Failed to cd to copy ruoyi-ui"; exit 1; }

# 记录成功日志
log "INFO" "Script executed successfully"

部署博客

vim /root/vitepress.sh

shell
#!/bin/bash
source /etc/profile

# 只留下最新执行的日志
echo "" > /root/vitepress.log

# 日志函数
log() {
    local level=$1
    local message=$2
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [${level}] ${message}" >> /root/vitepress.log
}

# 切换到项目目录
cd /docker/ruoyi/vitepress/ruoyi-vue || { log "ERROR" "Failed to cd to /docker/ruoyi/vitepress/ruoyi-vue"; exit 1; }

# 拉取最新代码
/usr/bin/git pull >> /root/vitepress.log 2>&1 || { log "ERROR" "Failed to git pull"; exit 1; }

# 切换到 docker-compose 目录
cd /docker/ruoyi || { log "ERROR" "Failed to cd to /docker/ruoyi"; exit 1; }

# 重启 vitepress 服务
/usr/local/bin/docker-compose restart vitepress >> /root/vitepress.log 2>&1 || { log "ERROR" "Failed to restart vitepress"; exit 1; }

# 记录成功日志
log "INFO" "Script executed successfully"
#!/bin/bash
source /etc/profile

# 只留下最新执行的日志
echo "" > /root/vitepress.log

# 日志函数
log() {
    local level=$1
    local message=$2
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [${level}] ${message}" >> /root/vitepress.log
}

# 切换到项目目录
cd /docker/ruoyi/vitepress/ruoyi-vue || { log "ERROR" "Failed to cd to /docker/ruoyi/vitepress/ruoyi-vue"; exit 1; }

# 拉取最新代码
/usr/bin/git pull >> /root/vitepress.log 2>&1 || { log "ERROR" "Failed to git pull"; exit 1; }

# 切换到 docker-compose 目录
cd /docker/ruoyi || { log "ERROR" "Failed to cd to /docker/ruoyi"; exit 1; }

# 重启 vitepress 服务
/usr/local/bin/docker-compose restart vitepress >> /root/vitepress.log 2>&1 || { log "ERROR" "Failed to restart vitepress"; exit 1; }

# 记录成功日志
log "INFO" "Script executed successfully"

设置脚本可执行

shell
chomd +x /root/admin.sh
chmod +x /root/web.sh
chomd +x /root/vitepress.sh
chomd +x /root/admin.sh
chmod +x /root/web.sh
chomd +x /root/vitepress.sh