定时任务组件
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