自动执行neo4j数据库备份

zyfwsgd6  于 2022-10-01  发布在  其他
关注(0)|答案(1)|浏览(226)

我有一个部署在云服务器上的ReactJS-neo4j应用程序。目前,我使用neo4j浏览器手动创建各种neo4j数据库的备份,并使用以下命令导出到json:

cypher
CALL apoc.export.json.all("my-neo4j-database.json", { useTypes: true } );

现在我想让这个过程自动化。我想每天00:00自动执行上述查询

生成的.json文件应该会收到一个时间戳和预定义的名称,例如2208170000_Backup_myployment.json

生成的文件应该存储在/home/Backups/ploymentName中

有人能告诉我如何使上述过程自动化吗?

编辑:

我试着像这样创建cron文件-

00 00 * * * /bin/sh /home/runFile.sh

在runFile.sh中,我有以下内容-

cypher
CALL apoc.export.json.all("backup.json", { useTypes: true } );

但这并不管用。如何在此处的文件名中添加时间戳?

8yparm6h

8yparm6h1#

您需要更改<home_neo4j>/conf/neo4j.conf中的neo4j配置文件,如下所示。如果您使用的不是像Debian那样的Linux服务器,则文件的位置会有所不同。

apoc.export.file.enabled=true
apoc.import.file.use_neo4j_config=false

第二行将使您能够将json文件从默认文件夹“导入”保存到您想要的任何文件夹。

然后打开连接到您的云服务器的终端(或ssh)。转到安装了cypher-shell的<home_neo4j>目录。复制并运行下面这一行脚本。

echo "CALL apoc.export.json.all("/home/backups/deploymentName/backup_mydeployment.json", { useTypes: true } )" | bin/cypher-shell -u neo4j -p <awesome_psw> --format plain

这将把json文件保存在/home/ackups/ploymentName中,就像在您的neo4j浏览器中所做的那样。

关于1)如何通过Linux命令在文件名中添加时间戳YYMMDD0000_,以及2)通过crontab计划每天午夜的作业,我将由您自己决定。祝你好运!

相关问题