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
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 communityFirst 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
SHELL=/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.
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
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.