bash не сохраняет историю

Если у вас установлена ​​почта (я использую postfix ... т. е. sudo apt-get install postfix), вы можете запускать скрипт bash в cron каждые 5 минут.

Скрипт использует «stat», чтобы проверить, изменился ли файл за последние пять минут (300 секунд), если так что переменная $ diff будет равна 1.

Некоторые вещи, подобные этому, должны работа:

#!/bin/bash
filemtime=`stat -c %Y /tmp/dnsexit-ip.txt`
currtime=`date +%s`
diff=$(( (currtime - filemtime) / 300 ))
x=1

if [ $diff -eq  $x ]
  then
    SUBJECT="DCHP CHANGE"
    EMAIL="youremail@example.com"
    EMAILMESSAGE="/tmp/emailmessage.txt"

    echo "Contents of dnsexit-ip.txt" >$EMAILMESSAGE
    cat /tmp/dnsexit-ip.txt >> $EMAILMESSAGE
    echo "Contents of dnsexit.log" >>$EMAILMESSAGE
    cat /var/log/dnsexit.log >> $EMAILMESSAGE

    sudo /usr/bin/mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE
 fi
1
задан 24 October 2012 в 20:24

2 ответа

Предполагая, что вы используете gnome-terminal ??, если это возможно, проверьте разрешения на .bash_history. Это должно быть -rw-r--r--

Чтобы сделать это в терминале ls -la |grep .bash, все 3 файла должны иметь указанные выше разрешения. В противном случае попробуйте удалить .bash_history, restart & amp; посмотрите, записана ли история

Обратите внимание, что история записывается только после закрытия терминала или выхода из него.

2
ответ дан 25 May 2018 в 05:08

Как отмечалось выше, это может быть исправлено с правами root-> пользователя. Первоначальные разрешения могут быть из -rw-r--r-- или любого другого варианта и корневого права собственности.

В моем случае у меня было только .bash_history, принадлежащее root, но все они .bash_ *, которые должны принадлежать пользователю.

1
ответ дан 25 May 2018 в 05:08
  • 1
    Добро пожаловать, чтобы спросить ubuntu :) Это ответ на 3 года, и упомянутое решение уже существует в другом ответе .. просто проголосуйте за него :) – storm 24 May 2016 в 12:58

Другие вопросы по тегам:

Похожие вопросы: