如何在单个命令行中恢复我的 Firebird 数据库并修改所有者设置?

如何在单个命令行中恢复我的 Firebird 数据库并修改所有者设置?

我正在使用 Ubuntu 18.04.4 LTS,最近从 Firebird 2.5 升级到 Firebird 3.0。

升级之前,我使用以下 unzip&replace 命令恢复本地数据库:

zcat /var/www/temp/<database name><backup timestamp>.gbak.gz | gbak -rep -v stdin /database/<database name>.fdb -user <username> -pass <password>

这一步就完成了整个工作,我喜欢这种东西。然而,在升级 Firebird 后,我发现 FlameRobin(版本 0.9.2.1850)无法连接到更新的数据库。错误消息(帮助其他可能正在谷歌搜索的人)是:

引擎代码:335544344
引擎消息:对文件“/database/.fdb”进行“打开”操作时发生 I/O 错误
尝试打开文件时
出错 权限被拒绝。

我的 CodeIgniter 项目抱怨:

无法使用提供的设置连接到数据库服务器。

为了解决这个问题,我将<database name>.fdb文件的所有者和组更改为firebird,然后firebird一切都很顺利。但是我分两步来做这件事……呃,很蹩脚吧?……我知道。

所以我想知道我是否可以执行类似更改文件夹权限和所有权与上面的 unzip&replace 命令在同一行?

我的系统管理能力并不十分出色,所以我不敢尝试得太疯狂,但我认为对于那些有经验的人来说这应该是一项相对基本的任务。

ps 理想情况下,我希望每次恢复时都不需要更改所有者设置,所以如果有办法做到这一点 - 那就更好了。

答案1

参考

哪一个更好:使用 ; 还是 && 在一行中执行多个命令?

我添加了:&& sudo chown firebird:firebird /database/<database name>.fdb到我的命令中以形成:

zcat /var/www/temp/<database name><backup timestamp>.gbak.gz | gbak -rep -v stdin /database/<database name>.fdb -user <username> -pass <password> && sudo chown firebird:firebird /database/<database name>.fdb

这成功地在一行中更改了所有权设置。

如果有更好的做法,我很乐意听到它并说明原因。

相关内容