ESR версия с долгосрочной поддержкой можно поставить из репы
sudo apt ...
Это я так, к слову перечислил варианты на будущее.
Лучше посоветуй как ему убрать неразрывный пробел нулевой ширины FEFF
173.194.222.139
lo-in-f113.1e100.net.
сохранить в ips.txt каждый ip-адресс, и PTR-запись , соответствующую этому ip(строкой ниже).
tail -f файл
cat fifo-файл
cat $LOG | analysisLogs &
# ... код
wait
#!/usr/bin/env bash
# бот1 и бот2 просто постоянно выводят рандомно числа от 0 до 9 с интервалом в 2 секунды
bot1(){
while true; do
echo "Bot1: $[RANDOM%10]"
sleep 2
done
}
bot2(){
while true; do
echo "Bot2: $[RANDOM%10]"
sleep 2
done
}
# обший лог-файл куда будем писать логи от ботов
LOG=/tmp/botsLog.txt
# удаляем лог-файл
rm -rf $LOG
# создаём именнованный канал (FIFO-файл)
mkfifo $LOG
# запускаем ботов паралельно и в фоновом(&) режиме, а также начинаем выводит от них информацию на консоль и писать в общий файл
bot1 | tee -a $LOG &
sleep 1
bot2 | tee -a $LOG &
# функция анализа поступающих данных
analysisLogs() {
# запускаем постоянное построчное чтение поступающих данных в функцию
while read -r data; do
# здесь мы задаём фильтры и то что выполнить если сработает условие
case "$data" in
"Bot1: 0" ) echo "Бот 1 выдал ноль"
;;
"Bot2: 0" ) echo "Бот 2 выдал ноль"
;;
esac
done
}
# читаем файл(FIFO-файл) и передаём появляющиеся данные в функцию analysisLogs
cat $LOG | analysisLogs
# это необходимо чтобы главная программа преждевременно не завершилась пока не завершаться запушенные в ней фоновые(&) потоки
wait
exit
node main.js | tee -a /path/to/log/file
q="$IFS";IFS=$'\n';nodeLogsArr=(cat /path/to/log/file);IFS="$q"
...
#!/usr/bin/env bash
# функции бот1 и бот2 которые постоянно выводят рандомно числа от 0 до 9 с интервалом в 2 секунды
bot1(){
while true; do
echo "Bot1: $[RANDOM%10]"
sleep 2
done
}
bot2(){
while true; do
echo "Bot2: $[RANDOM%10]"
sleep 2
done
}
# обший лог-файл куда будем писать логи от ботов
LOG=/tmp/botsLog.txt
# удаляем лог-файл (если ненужно то закоментирвоать)
rm -rf $LOG
# запускаем ботов в фоновом(&) режиме,
# а также начинаем выводит поступающую от них информацию на консоль и писать в общий лог-файл
bot1 | tee -a $LOG &
sleep 1
bot2 | tee -a $LOG &
# функция анализа лог-файла (потока)
analysisLogs() {
# запускаем постоянное построчное чтение поступающих данных в функцию
while read -r data; do
# здесь мы задаём фильтры и то что выполнить если совпадёт условие
case "$data" in
"Bot1: 0" ) echo "Бот 1 выдал ноль"
;;
"Bot2: 0" ) echo "Бот 2 выдал ноль"
;;
esac
done
}
# tail выводит поступающие данные по мере роста лог-файла (мониторит)
# в данном случае мы передаём появляющиеся данные из файла в функцию analysisLogs
tail -f $LOG | analysisLogs
# это необходимо чтобы главная программа преждевременно не завершилась
# пока не завершаться запущенные в ней фоновые(&) потоки
wait
exit
моё способ получения данных с программы на даёт ей выводить эти данные в консоль
[["logs"==*"Process exit with code:"*]]
[[ "$logs" =~ РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ ]]
один из плюсов из за которых мне нравится Арч это удобство и лаконичность его пакетного менеджера(ну и разных оберток над ним для аура)
например, из кода выше для убунту:
то в Арч это будет:
paru -Syu firefox-esr
синхронизироваться(-S) с удалённым репозиторием и загрузить(-y) базу пакетов, а после обновить(-u) все установленные пакеты, попутно скачать и установить пакет firefox-esr из аура