PythonAnywhere 上的 mongodump 和 mongorestore

mongodump and mongorestore on PythonAnywhere

我正在使用 PythonAnywhere 托管我的 Web 应用程序。使用 Mongodb 作为我的数据库。现在我的任务是定期备份并在需要时恢复特定版本的 mongodb。

在本地(windows 机器上),这很容易。安装 Mongodb 实用程序并执行命令

mongodump --mongodbConnectionString   //From location where this executable is stored
mongorestore --mongodbConnectionString

现在我的挑战是从 PythonAnywhere 完成它。我应该如何使用这些实用程序?


我有 Linux 个来自 mongodb site 的 mongodb 可执行文件,我从中提取了 bin 文件夹,如下所示

现在我将这个 bin 文件夹移动到 PythonAnywhere 并尝试执行 mongodump 命令

~/../applications/mongodb-linux-x86_64-ubuntu1404-3.4.0/bin$ ./mongodump mongodbConnectionString

失败并出现以下错误

bash: ./mongodump: Permission denied

我的问题是如何从 PythonAnywhere 执行 mongodump 和 mongorestore?我的最终目标是定期备份 mongodb 数据库

您需要在 PythonAnywhere 中正确设置 MongoDB 个二进制文件。

一般是权限错误导致执行失败

Make sure:
- You have execution permissions (chmod u+x file)
- Binnaries have proper owner    (chown user file)
- Binnaries have proper group    (chgrp group file)

注意:您需要 sudoer 才能授予此类权限

由于关于 mongodb 在 PythonAnywhere 环境上备份和恢复的文档较少,所以在这里写下在 PythonAnywhere 上备份和恢复 mongodb 的所有步骤。


先决条件:您需要 Pythonanywhere 帐户和 Mongodb 连接字符串。


在 PythonAnywhere 上备份和恢复 mongodb 的步骤:

  1. 从 mongodb 站点为 Linux 机器下载 mongodumpmongorestore 可执行文件 https://www.mongodb.org/dl/linux/x86_64-ubuntu1404

    我下载了mongodb-linux-x86_64-ubuntu1404-4.0.16,因为我用的是MongoDB4.0

  2. 解压并上传所需文件(如mongodumpmongorestore)到PythonAnywhere的特定目录位置。

  3. 上传这些文件后,更新其权限。我是 windows 用户,因此使用 WinSCP -> right click to file -> properties -> Select Groups/Owner permission.

  4. 更新了权限
  5. 从 PythonAnywhere 打开 Bash 控制台,转到存储 mongodump 的目录并执行以下命令

    ~directory of your bin folder$ ./mongodump mongodb_connection_string.


我收到 bash: ./mongodump: Permission denied,因为我没有给这些文件适当的权限。