我的脚本:

#!/bin/bash
#############此脚本需要使用postgres用户执行,建议添加到postgres用户的crontab里定时执行######
# 定义变量
remote_host="192.168.9.32"  # 远程服务器主机名
remote_path="/odoo"  # 远程服务器目标路径
ftp_username="ftpuser"  # FTP用户名
ftp_password="ftppassword"  # FTP密码

dbname="xiaoniba2023"
dbuser="postgres"
dbpwd=""
tmp_path="/var/tmp/"
backup_filename="$tmp_path$back$dbname-$(date +%Y%m%d_%H%M%S).sql"


  # 创建备份文件
  pg_dump -U $dbuser -d $dbname -f $backup_filename
  # 通过FTP上传备份文件
  ftp -n $remote_host <<EOF
    quote USER $ftp_username
    quote PASS $ftp_password
    put $backup_filename $remote_path/$(basename "$backup_filename")
    bye
EOF

  # 删除本地备份文件
  rm "$backup_filename"

  # 输出备份完成信息
  echo "备份文件 $backup_filename 已成功上传到远程服务器"



更新一下:加入ftp连接检测

#!/bin/bash
#############此脚本需要使用postgres用户执行,建议添加到postgres用户的crontab里定时执行######

# 定义变量
remote_host="192.168.9.32"  # 远程服务器主机名
remote_path="/odoo"  # 远程服务器目标路径
ftp_username="odoobackup"  # FTP用户名
ftp_password="Odoo2024Xiaoniba"  # FTP密码

dbname="xiaoniba2023"
dbuser="postgres"
dbpwd=""
tmp_path="/var/tmp/"
backup_filename="$tmp_path$back$dbname-$(date +%Y%m%d_%H%M%S).sql"

# 创建备份文件
pg_dump -U $dbuser -d $dbname -f $backup_filename

# 检查 FTP 服务器连接状态
if nc -z -w 5 $remote_host 21; then
  # FTP 服务器连接正常,执行上传操作
  ftp -n $remote_host <<EOF
    quote USER $ftp_username
    quote PASS $ftp_password
    put $backup_filename $remote_path/$(basename "$backup_filename")
    bye
EOF

  # 检查FTP上传是否成功
  if [ $? -eq 0 ]; then
    # FTP 上传成功,删除本地备份文件
    rm "$backup_filename"
    # 输出备份完成信息
    echo "$(date +%Y-%m-%d_%H:%M:%S),备份文件 $backup_filename 已成功上传到远程服务器"
  else
    # FTP 上传失败,输出错误信息并停止执行
    echo "FTP上传失败"
    exit 1
  fi
else
  # FTP 服务器无法连接,输出错误信息并停止执行
  echo "$(date +%Y-%m-%d_%H:%M:%S),无法连接到 FTP 服务器"
  exit 1
fi



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部