( exec >logfile 2>&1; set -x; somecommand )
или просто
( set -x; somecommand ) >logfile 2>&1
Это включит трассировку в подоболочке (...)
и перенаправит весь вывод в файл logfile
.
Если somecommand
равно mount
, то файл logfile
может выглядеть как
+ mount
/dev/sd0a on / type ffs (local)
/dev/sd0d on /tmp type ffs (local, nodev, nosuid, softdep)
/dev/sd0e on /var type ffs (local, nodev, nosuid)
/dev/sd0f on /usr type ffs (local, nodev)
/dev/sd0g on /usr/local type ffs (local, nodev, wxallowed)
/dev/sd0h on /home type ffs (local, nodev, nosuid, wxallowed, softdep)
/dev/sd0j on /backup type ffs (local, nodev, nosuid)
/dev/sd0k on /extra type ffs (local, nodev, nosuid, wxallowed, softdep)
mfs:92196 on /tmp_mfs type mfs (asynchronous, local, nodev, nosuid, wxallowed, size=8388608 512-blocks)
Знак «плюс»+␣
(и пробел )перед командой — это подсказка трассировки или четверичная подсказка, которую можно изменить, установив PS4
в строку подсказки:
( PS4='$ '; set -x; df /tmp ) >logfile 2>&1
Вышеизложенное может привести к чему-то вроде
$ df /tmp
Filesystem 512-blocks Used Avail Capacity Mounted on
/dev/sd0d 10315164 160 9799248 0% /tmp
в logfile
.
Это хорошо работает для простых команд, которые могут быть всем, что вам нужно. Для составных команд другие ответы, использующие script
или аналогичные утилиты, могут лучше подойти, поскольку трассировка оболочки составных команд не отображается, поскольку кто-то мог их ввести. Кроме того, переменные и т. д. будут расширены в выводе трассировки.
Установка UFW и активация системного блока недостаточны. Вам нужно настроить его. Обычное значение по умолчанию заключается в том, что все запрещено, и поэтому UFW отключается после установки (, включая запуск службы ). Проверьте вывод ufw status
и будьте осторожны, чтобы не включить настройку брандмауэра через UFW или другие средства, не убедившись, что у вас есть доступ с SSH или что вам нужно для управления вашим сервером.