Вы, вероятно знакомы с
multitail — он умеет следить за несколькими логами сразу. Но:Не беда: с этим справится и обычный
tail:tail -f /var/logs/*.log
На сервере с приложением часто работают несколько разработчиков или тестировщиков. Все смотрят логи через
tail -f.Когда приложение перезапускают, старые процессы
tail остаются в фоне — иногда на дни или даже недели. Это не критично, но выглядит неаккуратно и засоряет список процессов:ps aux | grep tail
🔧 Решение: tail с автозавершением
Можно сделать алиас, который будет следить за логом только пока жив процесс приложения:
alias TFapplog='tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app.log'
Как это работает:
--pid=$(cat /opt/app/tmp/app.pid) — tail будет автоматически завершён, когда процесс приложения умрёт.Добавьте этот алиас в ~/.bashrc или ~/.bash_profile.
Теперь, даже если кто-то забудет завершить tail, он сам корректно закроется при рестарте приложения.
Можно сделать несколько алиасов для разных приложений или логов — удобно и безопасно.
Для нескольких файлов и с PID можно использовать и так:
tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app1.log /opt/app/logs/app2.log
Все логи будут отображаться одновременно, и tail закроется при завершении процесса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Команда uniq предназначена для поиска одинаковых строк в массивах текста. Как вывести только уникальные строки (не имеющие дубликатов)?
Anonymous Quiz
50%
uniq -u
11%
uniq -d
11%
uniq -c
8%
uniq –I
20%
Посмотреть ответ
❤1
Помимо изменения прав доступа с помощью
chmod, иногда нужно изменить владельца файла или группу, которой он принадлежит.Для этих операций обычно требуются права суперпользователя (root), поэтому используем
sudo.Команда
chown (от change owner) позволяет назначить нового владельца файла:sudo chown [имя_пользователя] [имя_файла]
Пример:
sudo chown john report.txt
Теперь владельцем файла report.txt станет пользователь john.
Чтобы изменить владельца и группу файла или каталога, используем двоеточие:
sudo chown [имя_пользователя]:[группа] [имя_файла]
Пример:
sudo chown root:root /home/diego/Документы/Адреса.txt
После этого владелец и группа файла будут root:root.
Если нужно изменить только группу, а владельца оставить прежним, можно:
sudo chown :[группа] [имя_файла]
или использовать специализированную команду
chgrp (от change group):sudo chgrp [группа] [имя_файла]
Пример:
sudo chgrp staff /home/diego/Документы/Адреса.txt
Теперь владельцем остаётся прежний пользователь, а группа меняется на staff.
Сменим владельца и группу файла Адреса.txt на root:root:
diego@debian:~$ sudo chown root:root /home/diego/Документы/Адреса.txt
[sudo] пароль для diego:
diego@debian:~$ ls -la /home/diego/Документы/Адреса.txt
-rw-r----- 1 root root 2 фев 17 21:15 /home/diego/Документы/Адреса.txt
Как видно, владелец и группа изменились с diego:diego на root:root.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Права доступа -rwxr-sr-- равнозначны...
Anonymous Quiz
14%
0777
11%
2766
21%
2744
36%
2754
18%
Посмотреть ответ
Ответ через час.
#вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
Если нужно изменить логин пользователя вместе с переносом его домашней директории, используйте
Флаг
#вопросы
usermod с флагами -l, -d и -m:sudo usermod -l newname -d /home/newname -m oldnameФлаг
-l меняет имя, -d задаёт новый путь к home-каталогу, а -m принудительно перемещает всё содержимое со старого места на новое.#вопросы
❤10
Регулярные выражения в Vim и утилите sed позволяют за секунды отредактировать многотысячный файл. Ниже — подборка полезных однострочников для повседневных задач.
Vim:
:%s/^\w/\u&/gsed:
sed -i 's/^\w/\u&/g' file.txtVim:
:%s/\<\w/\u&/gsed:
sed -Ei 's/\b[a-z]/\U&/g' file.txtКак это работает: спецсимвол
\u переводит следующий символ в верхний регистр, \U переводит все последующие символы, а & обозначает найденное совпадение.Vim:
:g/^\s*$/dsed:
sed -i '/^\s*$/d' file.txtVim:
:g/^\s*#/dsed:
sed -i '/^\s*#/d' file.txt(Команда
:g/.../d в Vim полностью удаляет совпадающую строку, а не просто очищает её содержимое).\t):Vim:
:%s/ /\t/gsed:
sed -i 's/ /\t/g' file.txtVim:
:%s/\s\+$//esed:
sed -i 's/[ \t]*$//' file.txtФлаг
-i перезаписывает файл «на месте». На macOS (BSD sed) команда потребует указать пустые кавычки для резервной копии: sed -i '' 's/.../.../' file.txt. Если хотите подстраховаться, используйте sed -i.bak, чтобы автоматически создать бэкап файла перед изменением.Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2👌1