Redis无法写入日志或备份,但我需要备份当前在内存中的内容

时间:2017-02-08 01:55:37

标签: permissions redis

在我之前有人设置了redis实例(版本2.6)。

但出于某种原因,无论谁设置了这个,都有

  • etc
  • 一样放置配置文件/etc/redis.conf
  • dir配置设置./,如此dir ./
  • 该实例以非root身份运行。

像这样:

$ ps aux | grep "redis"`
user  /home/user/redis-stable/src/redis-server /etc/redis.conf
  • 记录将转到/dev/null,因为daemonize yes&& logfile stdout

因此它无法在/etc/中创建备份,因为它没有权限(我猜),我甚至看不到发生了什么,因为日志会发送到{{1 }}

我想进行备份,以便我可以关闭redis以修复所有这些内容,而不会丢失任何数据。有什么想法吗?

我试过了:

/dev/null

但仍无法写作。我猜它可能有一个临时文件,它试图写入之前将其移动到touch /etc/dump.rdb chown user:users /etc/dump.rdb

在查看Redis源代码后,似乎有一个临时文件:https://github.com/antirez/redis/blob/04542cff92147b9b686a2071c4c53574771f4f88/src/rdb.c#L986

/etc/dump.rdb

也试过

snprintf(tmpfile,256,"temp-%d.rdb", (int) getpid());

1 个答案:

答案 0 :(得分:3)

执行命令

config get dir

你会看到redis保存rdb的目录。

执行命令

config set dir /home/user/

将rdb转储目录更改为/ home / user。

然后运行:

redis-cli -p <port> bgsave

这将启动rdb转储。

希望这有帮助。