I just realised that a workflow I've been using for years, doesn't do what it is supposed to do. Since I haven't realised that for such a long time, you might think it's not worth putting much effort into it, but it turns out that right now, it has become somewhat important.
What am I talking about? Okay, I have
tmux running with several sessions and each session has different windows and so on. Working like that is wonderful. There's one downside to it, though. When the server gets restarted, for whatever resason, it closes all my sessions. Fair enough, cannot be avoided and doesn't happen often. However, the annoying part is, that all my
history is gone as well. This is a problem. I rely on my history, maybe far too much.
I was circumventing this problem by hitting
fc -W (in
zsh) every now and then. I thought this would append history that is in the memory and I would then only lose the part between my last invocation of
fc -W and the restart of the server. But that's not what it does. If I use
fc -W in one window, then
fc -W in another one, the history from the first window would be overwritten by the history from the second window. I would need to use
fc -R first, but this would duplicate the whole history... basically I was misusing the
fc command the whole time.
Here's the question: How can I make sure to not lose any of my history when I'm in
tmux and there is a sudden power cut? Note:
- I use infinite history, in case that matters.
- Losing some of the history is ok, i.e. if I have to invoke a command by hand (or in a cronjob) and I lose the part of the history since the command has last been run, that's fine.
- Exiting the terminal and open up new one is not the solution.
- I don't want to store my commands directly to the history, since this mixes up different histories.
- Solutions for both
Edit: Highlight the part that everyone seems to misunderstand.