how to make scheduler backup command history every restart ?
i try with
@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
Stack Exchange network consists of 181 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.Visit Stack Exchange
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.Sign up to join this community
First thanks for answer
Before see answer i found the solution
@reboot cp /home/username/.bash_history /home/username/History_Command.txt
And it works
@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
--backupoption to the previous comment script to avoid truncated history issue.
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
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.
cron does not use the same
PATH as your Bash shell does. More on that here.