我想在bash脚本 内部实现sqlite数据库的二进制备份,并将其设置为cron作业。安全备份意味着在复制数据库文件之前写入锁定。 我发现庆典互动配方(http://ajacevedo.com/resources/sqlite/):bash脚本中sqlite的安全副本
$ sqlite3 databasename.sqlite3
sqlite> begin immediate;
<press CTRL+Z>
$ cp -a databasename.sqlite3 databasename.sqlite3.backup
$ fg
sqlite> rollback;
sqlite> .exit
我知道,有在的.backup源码,但它似乎并没有做写锁 (Is sqlite locked during .backup)。 我不是一个bash专家不幸的。是否有可能在bash脚本中实现该代码,该脚本可以作为cron作业执行(非交互式)? 可能会使用pid或其他类型的魔法。
我想你需要使用'expect'来编写与'sqlite3'的交互脚本。 – chepner
这个配方在预写日志(WAL)模式下不适用于sqlite数据库:您也需要复制预写日志(-wal文件)。 – Fabian