如何每晚自动更新数据库

如何每晚自动更新数据库

目前,我每天开始工作之前,都会完成以下程序:

  • ssh 到生产服务器
  • gzip 我们的每日数据库转储文件
  • 将 gzip 压缩的转储文件复制到我的电脑上
  • gunzip 转储文件
  • dropdb我的数据库
  • createdb 我的数据库
  • psql mydatabase < dump.sql

是否有可能(我确信是)在 Mac OSX 上自动执行此过程?这样,我早上上班时就可以完成。如果可以,最快捷、最简单的方法是什么?

答案1

我会将其设置为几个 shell 脚本,由计划任务

在服务器上,设置一个作业来对数据库转储文件进行 gzip 压缩,并将其复制到已知位置(如)/home/russ/backups/latest.gz。安排此脚本通过 cron 运行,以便它在客户端作业运行前至少有 30 分钟完成。

客户端脚本将完成其余工作——所有客户端工作。

如果你想要更像 Mac,你可以通过以下方式运行客户端脚本启动而不是 cron,但 cron 也可以正常工作。

如果您还没有掌握这方面的技能,我认为这是一个很棒的项目,可以帮助您学习 shell 脚本和 cron 调度。

答案2

您可以使用预计为作业准备。该程序可以启动作业,并根据所获得的输出向进程发送输入。

相关内容