linux полезные команды


// перенос с удаленного сервера на локальный (pull) recursive, verbose, compress, human readable, archive mode, progress
// В rsync слеш на конце имеет значение - будет выгружено содержимое директории.
rsync -vrzhaP man@site.ru:www/sitedir/site.ru site.local
// с локального на удаленный
rsync -vrzhaP LOCAL man@site.ru:www/sitedir/site.ru
// тоже самое scp
scp -r user@site.ru:www/sitedir/site.ru   ./
// наоборот
scp -r * user@site.ru:www/sitedir/site.ru 
// скачать пропуская существующие файлы, и исключить директорию upload, cache
rsync xxx@yyy:dirs . --ignore-existing --exclude "upload" --exclude "cache" --exclude="modules" --exclude="backup" --exclude="managed_cache" --exclude="bitrix/components"
// если список на исключение длинный (скачать ниже)
rsync xxx@yyy:dirs .  --ignore-existing --exclude-from 'exclude-list.txt'
// если нет ssh, есть ftp. Закачать с локального на удаленный (ключ -R)
lftp -e 'mirror -R local/ /home/user/remote/ ' -u user,PassWorD dev10.ru
// скачать с удаленного на локальный
lftp -e 'mirror  remote/ local/ ' -u user,PassWorD dev10.ru
//  скачать/закачать исключая некоторые директории, а также пропуская уже существующие
mirror --only-newer --exclude "upload/" --exclude "bitrix/cache/"
// монтировать фтп сервер как локальный для манипуляции с файлами
curlftpfs ftp.server.ru /mnt/ftp/ -o user=username:password
(далее…)

проверка сервера на 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

mail.txt

Subject: server error!!!
From: user@vaajnur.novalocal
Content-Type: text/html; charset="utf8"
<html>
	<body>
<div style="
		background-color:
		red; width: 300px;
		height: 300px;
		">server error!!!</div>
</body>
	</html>