[i=s] 本帖最后由 松柏新186062 于 2025-3-25 11:28 编辑 [/i]<br />
<br />
我是写了个shell开机自启动,来处理更新或者重启之后,需要手动编辑数据启动的问题
第一步:写shell
vim /root/auto_start_app.sh
#!/bin/bash
# 定义日志文件路径
LOG_FILE="/root/auto_start_app.log"
# 函数:记录日志
log() {
local message="$1"
local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
echo "[$timestamp] $message" >> "$LOG_FILE"
}
log "60s后将自定义应用改为运行状态"
sleep 60
# 要添加的新行内容
PG_HBA_CONF="/etc/postgresql/15/main/pg_hba.conf"
NEW_LINE="host all all 0.0.0.0/0 md5"
# 判断新行内容是否已经存在
if ! grep -qF "$NEW_LINE" "$PG_HBA_CONF"; then
# 若不存在,则添加新行内容
echo "$NEW_LINE" >> "$PG_HBA_CONF"
log "已在 $PG_HBA_CONF 文件末尾添加内容:$NEW_LINE"
# 重启postgresql服务
systemctl restart postgresql
if [ $? -eq 0 ]; then
log "postgresql服务已成功重启"
else
log "重启postgresql服务失败"
fi
else
log "$PG_HBA_CONF 文件中已存在内容:$NEW_LINE,无需重复添加"
fi
DB_USER="superme"
DB_PASSWORD="superme"
DB_HOST="127.0.0.1"
DB_PORT="5432"
DB_NAME="appcenter"
export PGPASSWORD=$DB_PASSWORD
# 创建临时文件
TEMP_FILE=$(mktemp)
# 执行 SQL 语句并将结果输出到临时文件
psql -U $DB_USER -h $DB_HOST -p $DB_PORT -d $DB_NAME <<EOF 2>&1 > $TEMP_FILE
UPDATE public.app
SET status = 'running'
WHERE maintainer = 'superme';
EOF
# 读取临时文件内容
result=$(cat $TEMP_FILE)
# 删除临时文件
rm $TEMP_FILE
# 记录数据库执行结果到日志
log "数据库执行结果:$result"
unset PGPASSWORD
第二步:自启动
crontab -e
最后一行加上
@reboot sh /root/auto_start_app.sh
ctrl + x退出 y保存 |