Скрипт для контроля за SSH. Чтобы трогал и перезапускал.

Статус: Offline
Реєстрація: 17.08.2005
Повідом.: 49045
Скрипт для контроля за SSH. Чтобы трогал и перезапускал.

Баш не знаю ваще. Есть на Orange PI 3 убунта десктоп.
Всё, что надо, настроил - столкнулся с тем, что ssh после настройки автологина начинает странно себя вести (возможно не сам по себе, а из за каких-то боков с сетевым подключением, оно вайфайное) - не запускается при старте системы, может долго висеть, потом мне показывается сообщение, что теперь я подключен к eth0 и ssh просыпается.

Проверил - вайфай подхватывается и интернет всё это время есть. Но пока это сообщение не вылазит - ssh не запущен.
Проверил - если service ssh restart, то поднимается независимо от того, прокурила бубунта, что есть eth0, или не прокурила.

Просьбо: ткните в готовое, или подскажите как правильно делать.
Надо поставить на таймер скрипт, который будет раз в 5 секунд проверять жив ли ssh и, если нет - делать ему рестарт.

Спасiбо.
 
так ты просто ждать не хочешь ? скорее всего депенденси есть и оно ждет последний какой-то сервис до запуска. может впн какой-то тухлый пытается запуститься. хз.

ну так тупо в rc.d пропиши сервис рестарт. или простой скрипт screen while true if !test pidfile; s blabla; sleep 5;.... &
 
или -d тогда он демоном сам запустится, не помню.
 
или -d тогда он демоном сам запустится, не помню.

Вот и я не помню :D А, вернее, не знаю.
Дело в том, что ssh и так с респавном, то есть - должен автоматически перезапускаться, и при старте запускаться тоже.
Но он, скорее всего, действительно чего-то ждёт. То есть стандартная настройка самого ssh - не помогает. Надо скрипт, который будет стартовать при загрузке, нихера не ждать и тупо по расписанию чекать наличие ssh

ЗюЫю Естественно, просто подождать ssh - не хочу, бо это может и минут 5 быть.
 
Вот и я не помню :D А, вернее, не знаю.
Дело в том, что ssh и так с респавном, то есть - должен автоматически перезапускаться, и при старте запускаться тоже.
Но он, скорее всего, действительно чего-то ждёт. То есть стандартная настройка самого ssh - не помогает. Надо скрипт, который будет стартовать при загрузке, нихера не ждать и тупо по расписанию чекать наличие ssh

ЗюЫю Естественно, просто подождать ssh - не хочу, бо это может и минут 5 быть.

ну так посмотри после какого события появляются логи. ту проблему и почини.
 
может у тебя неск интерфейсов и он их пытается инициализировать напрасно по dhcp
 
вообще в таких случаях достают полный лог, а не пересказывают.
 
Какой тебе лог снять? Он на SD-карточке стоит и там выключена вся запись по максимуму. Могу включить.

ты не мне, ты себе. ты с выключенным логом словил проблему и недодумал его включить чтобы посмотреть ?
 
Вот пример как для Apache, также и для ssh.
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
 
ты не мне, ты себе. ты с выключенным логом словил проблему и недодумал его включить чтобы посмотреть ?

Я обязательно подумаю над этим, если не дождусь ответа. Но в данном случае мне не очень интересно вылавливать чего именно ждёт запуск ssh. Решение через потусторонний скрипт - универсальное. Не факт, что "проблему" вообще надо искать в данном случае. Достаточно решения.
 
Я обязательно подумаю над этим, если не дождусь ответа. Но в данном случае мне не очень интересно вылавливать чего именно ждёт запуск ssh. Решение через потусторонний скрипт - универсальное. Не факт, что "проблему" вообще надо искать в данном случае. Достаточно решения.

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

зачем чинить дхцп или интерфейсы если можно руками прописать через ifconfig в скрипте
 
ну да, должно быть так сделанно чтоб ни один ман не помог разобраться внешнему человеку...

зачем чинить дхцп или интерфейсы если можно руками прописать через ifconfig в скрипте

Не, то разные случаи. ДХЦП - самодостаточная вещь, если нужны - значит надо чинить. Запуск ssh - не самодостаточная, она тоже через конфиг, и меня не устраивает как то, что должно отрабатывать конфиг - его отрабатывает.
 
ps -A|grep apache2|wc -l
дучшее, что я нашел. Возвращает 1, если служба запущена, и 0, если нет
Ща в скрипт оформлю как функцию с подменой apache2 на $1 и скрипт сделаю, который сможет по списку любую проверять если передать параметром имя.
 
Как я ненавижу ебучий кривой косой драный линукс...
Ну почему line 7: [ps: command not found -? Почему баш не видит ps?
Почему ps -A|grep ssh|wc -l прекрасно отрабатывает из командной строки, а из скрипта - НЕТ?
 
Вот во всех примерах так можно
OBJT='pgrep ssh'
..
if [$OBJT]

А в ебучей именно моей именно этой убунте - из if [ - не видит нихуя, ни grep, ни pgrep, ни ps...

Не, ну шо за хуйня?
 
Короче, запустить команды из рамок [] мне так и не удалось.
Получилось вот так

Код:
OBJT=$(pgrep ssh )
echo result: $OBJT
if [ "$OBJT" !=  "" ]
        then echo All_is_Done_$1
        else echo Undone
        service ssh restart 
        echo service will restarted
fi
Главное понять, что pgrep возвращает не инт, а строку... схуяле - не знаю. Но строку.

В случае удачи сернёт в чат
check_service:
result: 11688
All_is_Done_
 
Вот пример как для Apache, также и для ssh.
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Ваще ничё ниработаит. По той же причине - не запускается из [
adminsh.sh: line 17: [2: command not found

То-ли у оранжей свой линукс с блэкджеком и шлюхами, то-ли я чего не понимаю, но многие примеры используют этот способ, и он у меня не работает.

Тот, что я нашел - будет работать везде.
 
А если обновить procps?
 
А если обновить procps?
Токма шо было всё update и upgrade.
Это просто сборка для оранж пи. Там что угодно может быть. Войну с добавлением скрипта в автозагрузку я ещё не выиграл... там тоже бока какие-то, примеры не катят.
 
Назад
Зверху Знизу