how to make scheduler backup command history every restart ?
i try with
crontab -e
@reboot history > backup.txt
and I reboot my pc there is a file backup.txt in directory but the file is empty, there are no results of the command history
how to make scheduler backup command history every restart ?
i try with
crontab -e
@reboot history > backup.txt
and I reboot my pc there is a file backup.txt in directory but the file is empty, there are no results of the command history
First thanks for answer
Before see answer i found the solution
crontab -e
@reboot cp /home/username/.bash_history /home/username/History_Command.txt
And it works
Bash's history
doesn't work that way. Read this link for more information.
A direct quote from the link above:
Bash maintains the list of commands internally in memory while it's running.
Since Bash is not running after a reboot, you get no output.
Furthermore, cron
does not use the same PATH
as your Bash shell does. More on that here.
Since the history is just a file, you could simply copy it:
SHELL=/bin/sh
PATH=/usr/bin:/bin:/usr/sbin:/sbin
@reboot cp $HOME/.bash_history $HOME/backup.txt 2>&1
– 林果皞 Nov 16 '17 at 10:37SHELL=/bin/bash
@reboot if [[ $(wc -l </home/<username>/.bash_history) -ge 10000 ]]; then cp /home/<username>/.bash_history /home/<username>/.bash_history_reboot_bk; else echo $(wc -l </home/<username>/.bash_history) > /home/<username>/Downloads/pls_check_bash_history; fi
--backup
option to the previous comment script to avoid truncated history issue. – LMC May 12 '21 at 17:56