ssh добавление публичного ключа


// генерим публичный ключ. passphrase оставляем пустым. 
ssh-keygen
// копируем на удаленный сервер в файл authorized_keys
cat  .ssh/id_rsa.pub | ssh user@dev10.ru " cat >> ~/.ssh/authorized_keys "
// удалить старый ключ
ssh-keygen -R 192.168.1.123

проверка сервера на bash

Мониторить сервер можно так: создадим bash-скрипт, который будет проверять ответ заголовков с помощью curl. Ответ сохраню в temp файле. При ошибке отправлю письмо.

 
#!/bin/bash

tmp_file=$(mktemp)
# параметр -L делает переход по редиректам
curl -I -L 'phpjs.ru' >> tmp_file
resp=$(cat tmp_file) 
if [[ "${resp}" == "" ]]; then
	#statements
	echo 'err resp var not founded!!'
	#exit 1
fi
rm -rf tmp_file

if echo "${resp}" | grep 'HTTP/1.1 200 OK' > /dev/null  ; then
	echo 'GOOD!'
	#exit 0
else
	/usr/bin/php -r "echo(mail( 'recipient@mail.ru' , 'server not working' , 'server not working' , 'From: sender@gmail.com'));"
	/usr/sbin/sendmail -t 'recipient@mail.ru' < /home/user/mail.txt
	echo 'error!'
	#exit 1
fi

И запись в крон


0 * * * * sh /home/user/check_server.sh > /dev/null

не забываем


service crond restart

Cron

Добавляем запись в крон.


crontab -e

// для centos
crontab /etc/crontab

Сама команда задается в таком формате

минута час день_месяца месяц день_недели команда



Напишу пример на ночной крон без сохранения вывода
(далее…)