/usr/bin/php /адрес/script.php
Рубрика: Администрирование
Упаковать папку в zip в linux. Пример
Команда zip. Опция -r значит рекурсивно, сохраняя структуру директории. Затем место размещения будущего архива и путь к папке которую нужно заархивировать. Пример команды : Упаковать папку в zip в linux. Пример
Изменить пользователя в linux
Команда в консоле для смены пользователя папки или файла
Рекурсивно:
chown -R newname:newgroup directory/
А здесь и смена прав и смена пользователя рекурсивно:
chown -R www-root:www-root /var/www/www-root/data/www/domain.com/ chmod -R 777 /var/www/www-root/data/www/domain.com/
rsync — пример синхронизации
rsync -avz /var/www/user-name/data/www/sitename.ru/ root@xx.xx.xx.xx:/var/www/user-name/data/www/sitename.ru/
Перенаправление на с http на https. Варианты через nginx и htaccess
С помощью .htaccess
Options +FollowSymLinks
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
С помощью Nginх
Нужно добавить одну строку в настройки вашего nginx сервера. Обычное место расположения файлов конфигурации nginx: /etc/nginx/vhosts/
Открываем файл конфигурации и вносим следующу строку (естественно заменив sitename.ru на ваш сайт)в настройку сервера который слушает порт 80:
return 301 https://sitename.ru$request_uri;
301 код ответа сервера для редиректа (напомним код 301- означат перемещен перманентно)
Также нужно убедиться что, есть настройки для обработки запроса через порт 443 ssl. Шаблон конфигурации представлен ниже:
server {
…
…
…
listen 123.123.123.123:80;
return 301 https://sitename.ru$request_uri;
}
server {
…
…
…
listen 123.123.123.123:443 ssl;
}
putty — не верное отображение символов в MC — qqqqqq
Часто бывает что при заходе на сервер через Putty встречаешь «аброкадабру» вместо букв в Midnight Commander (MC) или неверное отображение псевдографики (линии отображаются qqqqqqqqqqq…) Обычно это решается выставлением правильной кодировки в настройках Putty:
Window -> Translation -> Remote character set
Устанавливаем ту же кодировку что и на удаленном сервере. Обычно это UTF-8
Чтобы узнать какая кодировка используется на сервере вводим ssh команду:
locale
В ответ сервер выдает что-то типа:
LANG=ru_RU.UTF-8
LC_CTYPE=»ru_RU.UTF-8″
LC_NUMERIC=»ru_RU.UTF-8″
LC_TIME=»ru_RU.UTF-8″
LC_COLLATE=»ru_RU.UTF-8″
LC_MONETARY=»ru_RU.UTF-8″
LC_MESSAGES=»ru_RU.UTF-8″
LC_PAPER=»ru_RU.UTF-8″
LC_NAME=»ru_RU.UTF-8″
LC_ADDRESS=»ru_RU.UTF-8″
LC_TELEPHONE=»ru_RU.UTF-8″
LC_MEASUREMENT=»ru_RU.UTF-8″
LC_IDENTIFICATION=»ru_RU.UTF-8″
LC_ALL=
Это значит что кодировка используемая в консоли ru_RU.UTF-8. Выставляем в Putty UTF-8 и все должно заработать нормально.
Однако бывает что в ответ на команду locale сервер выдает:
LC_CTYPE=»POSIX»
LC_NUMERIC=»POSIX»
LC_TIME=»POSIX»
LC_COLLATE=»POSIX»
LC_MONETARY=»POSIX»
LC_MESSAGES=»POSIX»
LC_PAPER=»POSIX»
LC_NAME=»POSIX»
LC_ADDRESS=»POSIX»
LC_TELEPHONE=»POSIX»
LC_MEASUREMENT=»POSIX»
LC_IDENTIFICATION=»POSIX»
LC_ALL=
Это значит что локаль на сервере не настроена.
Чтобы посмотреть предустановленые локали:
locale -a | grep ru
Сервер выдаст что-то типа:
ru_RU
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
Видим что необходимая локаль есть ru_RU.utf8
Чтобы настроить использование ее в консоли создаем файл /etc/sysconfig/i18n командой:
touch /etc/sysconfig/i18n
После чего в файл пишем следующие строки:
LANG=»ru_RU.UTF-8″
SUPPORTED=»ru_RU.UTF-8:ru_RU:ru»
SYSFONT=»latarcyrheb-sun16″
Сохраняем файл и выходим из консоли. Заходим снова. И наблюдаем что всее символы отображаются корректно.
Если при использовании команды
locale -a | grep ru
в списке нет необходимой локали. То нужно ее установить командой:
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
Эта команда извлечет из папки /usr/share/i18n/charmaps файл UTF-8.gz (символьная карта для юникода) и сгенерирует нужный нам файл ru_RU.UTF-8
Посмотреть версию MPM в Apache
Команда
pkg_info | grep apache
Ответ будет что-то типа:
apache-itk-2.2.21 Version 2.2.x of Apache web server with itk MPM.
Посмотреть установленные модули Apache
Команды:
httpd -l
Или
httpd -M
Работа с жесткими дисками FreeBSD
Вывести список установленных жестких дисков:
# geom disk list
# atacontrol list
Если есть программный RAID массив, посмотреть его статус:
# atacontrol status ar0
Установка MC
Вобщем не только MC (Midnight Commander). Механизм установки программы такой:
Ищем место расположение ее:
#whereis mc
Сервер ответит
mc: /usr/ports/misc/mc
Если не найдет, то нужно сперва установить порты
Переходим в директорию программы
#cd /usr/ports/misc/mc
Установка MC
Установка и обновление портов Free BSD
Если не установлены устанавливаем:
#portsnap fetch
#portsnap extract
Обновляем командой:
#portsnap update
Установка и обновление портов Free BSD
Просмотр установленных модулей Nginx
Чтобы посмотреть какие модули собраны в установленном Nginx, нужно ввести в командной строке:
# nginx -V
Просмотр установленных модулей Nginx
Выполнение PHP через Cron
Для выполнения php скрипта по расписанию, можно использовать Cron. Для этого нужно внести изменения в таблице Crontab. В системе на FreeBSD таблицы находятся в var/cron/tabs/
Внесение следующей строчки:
*/1 * * * * /usr/local/bin/php -q /home/user/data/www/mysite.ru/mysctypt.php
делает автоматическое выполнение скрипта mysctypt.php каждую минуту (*/1 ).
/usr/local/bin/php -q — путь до интерпретатора php с параметром -q, чтобы не выводить http-заголовки.
Сетевая нагрузка сервера на Linux
Сразу скажу. чтобы прикратить выполнение некоторых команд в окне терминала назмите Ctrl+С. Эти команды позволят просмотреть количество коннектов на сервер, и возможно отследить DDoS атаку.
Число процессов Apache:
ps aux | grep httpd |wc -l
Число коннектов на 80 порт:
netstat -na | grep :80 | wc -l
Посмотреть много ли разных IP:
netstat -na | grep :80 | grep SYN | sort -u | more
На какой домен чаще всего идут запросы:
tcpdump -npi eth0 port domain
Статус Apache:
apachectl status
Посмотреть откуда IP или Domain:
whois xxx.xxx.xxx.xxx
или
jwhois xxx.xxx.xxx.xxx
С какого IP сколько запросов:
netstat -na | grep :80 | sort | uniq -c | sort -nr | more
Количество соединений с сервером:
cat /proc/net/ip_conntrack | wc -l
IP которые соединены с сервером и какое количество соединений по каждому IP
netstat -anp |grep ‘tcp\|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
Проверяем на SYNC flood:
netstat -n -p | grep SYN_REC| awk ‘{print $5}’|awk -F: ‘{print $1}’ | sort -n | uniq -c | sort -nr | head -n10
Очистить логи nginx
В командной строке вводим и нажимаем ввод:
echo > /var/log/nginx-access.log — очищает файл запросов к серверу
echo > /var/log/nginx-error.log – очищает файл ошибок nginx
Установка CURL на FreeBSD
То что выделенно жирным шрифтом пишем в командной строке
1) cd /usr/ports/lang/php5-extensions
2) make config
Отмечаем CURL Support
3) make install && make clean
Ждем некоторое время, переодически будут появляться различный окна с установками для зависимых приложений. Жмем ок. Ждем. После завершения установки не забываем перезагрузить Apache
Горячие клавиши Midnight Commander
Клавиатурные комбинации в Midnight Commander имеют особенность: комбинация Ctrl + x c означает, что нужно нажать CTRL и X, отпустить и потом нажать клавишу C.
Ctrl + Space — подсчёт размера каталога.
Alt+I неактивная панель переходит в каталог в котором находится активная панель.
Esc+Tab автодополнение в командной строке и в диалоговых окнах (для получения списка вариантов надо нажать дважды)
Для того чтобы работала вставка по Ctrl+V надо удерживать клавишу Shift.
CTRL+\ Меню директорий
CTRL-X+D Сравнение каталогов
CTRL+R Обновить
CTRL+O Спрятать панели
M+* Инвертировать выделение
ALT+? Поиск файла
CTRL-X+Q Быстрый просмотр
Alt+Shift+H (Esc+Shift+H) открывает список посещённых каталогов для текущей панели.
Горячие клавиши Midnight Commander
Информация о системе в FreeBSD
Узнать тип процессора, версию ОС, колличество памяти в операционной системе FreeBSD можно командой:
less /var/log/dmesg.today
Определение типа процессора через SSH под FreeBSD
В коммандной строке SSH пишем:
dmesg | grep -w CPU:
Перезагрузки в FreeBSD
через SSH в командной строке пишем, если нужно
Перезагрузить Apache: /usr/local/etc/rc.d/apache22 restart
Перезагрузить MySQL: /usr/local/etc/rc.d/mysql-server restart
Перезагрузить сервер: reboot
Перезагрузить Nginx: /usr/local/etc/rc.d/nginx restart