有没有办法在备份时保留数据库文件属性(例如UID,GID)

时间:2018-12-20 20:57:04

标签: sqlite embedded-linux beagleboneblack busybox

我们有基于beaglebone黑色的定制板,
我们正在添加以不同于root用户身份运行的应用程序。
该应用程序拥有sqlite数据库,并启用了日志。
但是root用户需要备份该数据库并保留其文件属性,例如用户,组和权限。

现在我使用以下命令备份sqlite数据库,但未维护用户和组之类的文件属性文件权限相同,请检查以下命令,

# ls -l
-rw-r--r--    1 ankur    ankur        12288 Dec 20 15:46 testdb.sqlite
# 
# 
# 
# sqlite3 testdb.sqlite ".backup testdb_backup.sqlite"
# ls -l
-rw-r--r--    1 ankur    ankur        12288 Dec 20 15:46 testdb.sqlite
-rw-r--r--    1 root     root         12288 Dec 20 15:47 testdb_backup.sqlite

是否有其他命令(或选项)进行备份并维护文件属性?

选项之一是进行备份并将源文件属性复制到目的地(备份数据库)。 但是busybox cp不支持。

还有其他建议/指针吗?

1 个答案:

答案 0 :(得分:1)

使用susudo来执行应表现为用户已执行的动作。

在这种情况下,例如

su -c 'sqlite3 testdb.sqlite ".backup testdb_backup.sqlite"' ankur

sudo -u ankur sqlite3 testdb.sqlite ".backup testdb_backup.sqlite"

su可以作为busybox命令使用,如果您的环境在启用该功能的情况下无法构建busybox,则可能需要启用它。