首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对终端历史进行智能备份

如何对终端历史进行智能备份
EN

Unix & Linux用户
提问于 2022-08-09 01:28:44
回答 1查看 178关注 0票数 3

尝试实现我的zsh终端历史记录(~/.zsh_ history )的智能备份。bash也是一样,没有区别,只是文件名为.bash_history。

到目前为止,我已经决定创建一个私人的git,因为我的历史可以包含秘密等等。我已经创建了一个ansible脚本(可以用bash脚本来完成),它创建了每月的dir,基本上每天都会将~/..zsh_history的内容复制到月度dir中,并以每日时间戳作为文件名。我已经把那个剧本写成了日常工作。

问题是有很多重复。一开始我以为可以在备份成功后删除历史文件的内容,但后来我意识到这意味着不需要递归搜索。现在,我正在考虑创建一个功能,与前一天相比,它只备份对历史的更改。如果今天的历史是命令(1,2,3),明天是(1,2,3,4,5)第二天的备份,我们只需要(4,5)而不是全部。有点像两组的交集(昨天的历史文件是一组,今天的是另一组(比包含昨天的一组大!)

做这件事最好的方法是什么?我没有找到类似的项目的其他例子,所以任何帮助都是值得赞赏的。

下面是历史文件中的几行以供参考:

代码语言:javascript
复制
: 1659932134:0;git commit -m "First initial best commit"
: 1659932139:0;git push
: 1659932147:0;git push -u origin main
: 1659932151:0;git push
: 1660008827:0;cat ~/.zshrc
: 1660008832:0;cat ~/.zsh_history

例如,第二天的文件应该如下所示:

代码语言:javascript
复制
: 1659932134:0;git commit -m "First initial best commit"
: 1659932139:0;git push
: 1659932147:0;git push -u origin main
: 1659932151:0;git push
: 1660008827:0;cat ~/.zshrc
: 1660008832:0;cat ~/.zsh_history
+++++++++ ( this is just me adding to show the difference)
: 1659932113:0;git add .gitignore
: 1659932117:0;git add backups/
: 1659932119:0;git add hist_backup.yml
EN

回答 1

Unix & Linux用户

发布于 2022-08-11 16:42:47

关于

那么,最好的方法是

因为记录所有运行的命令(由生产服务器上的管理员运行)是一个非常普遍的需求,所以auditd可能是这里的正确工具。

关于

我没有找到类似项目的其他例子

由于时间戳,可能您需要能够搜索,这似乎是一种数据库更适合您的用例,而不是git。因此,使用类似于在数据库中记录bash历史记录的方法是可能的。

关于

如何做智能备份?

您还可以通过rsync查看增量备份。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/712962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档