Посмотреть все правила
# iptables -L -n -v
(я предпочитаю iptables-save)
Посмотреть правила с нумерацией строк
# iptables -L INPUT -n --line-numbers
Вставить правило между 1 и 2 строкой:
# iptables -I INPUT 2 -s 120.155.16.23 -j DROP
Удалить строку 3
# iptables -D INPUT 3
Удалить все правила
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X
Где:
-F - Удалить (flush) правила
-X - Удалить цепочку
-t table_name - Выбрать таблицу (nat или mangle) и удалить все правила.
-P - Выбрать действия по умолчанию (такие, как DROP, REJECT, или ACCEPT).
Ограничить количество параллельных соединений к серверу для одного адреса.
Для ограничений используется модуль connlimit. Чтобы разрешить только 5 ssh соединений на одного клиента
# iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT
Установить количество запросов HTTP до 10
# iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP
Открыть диапазон портов
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8000:8888 -j ACCEPT
Также полезная информация http://blog.ispsystem.info/search?q=iptables
Куда пишет ISPmanager правила iptables https://doc.ispsystem.ru/index.php/Алгоритм_работы_модуля_"Брандмауэр"
Восстанавливаем пакет bitrix окружения после ручного downgrade php CentOS 6
Если на CentOS 6 сделать downgrade php с 7 до 5.3, то пакет bitrix-env удалится из системы и не будет работать ./menu.sh и вообще ничего в целом (конфиги apache/nginx)
А поставить yum install bitrix-env не получится так как в зависимостях php7
Поэтому после downgrade качаем
wget http://repos.1c-bitrix.ru/yum/el/6/x86_64/bitrix-env-7.0-1.el6.noarch.rpm
и распаковываем в /
rpm2cpio package.rpm | cpio -idmuv
ну или в mc
цель поста - ссылка на bitrix-env-7.0-1.el6.noarch.rpm
Как делать downgrade (примерно надо руками доделывать) и другая информация http://blog.ispsystem.info/search/label/bitrix-env
Установка sphinx sphinxsearch на Debian 8
wget http://sphinxsearch.com/files/sphinxsearch_2.2.11-release-1~jessie_amd64.deb
apt-get install libodbc1
dpkg -i sphinxsearch_2.2.11-release-1~jessie_amd64.deb
vi /etc/sphinxsearch/sphinx.conf
Главно не забыть создать индексы, без команды ниже ничего не работает!
indexer --all --verbose
service sphinxsearch restart
apt-get install libodbc1
dpkg -i sphinxsearch_2.2.11-release-1~jessie_amd64.deb
vi /etc/sphinxsearch/sphinx.conf
Главно не забыть создать индексы, без команды ниже ничего не работает!
indexer --all --verbose
service sphinxsearch restart
postfix управление очередью
Прочитать письмо
postcat -b 4E62A1C0493
Посмотреть активные настройки Postfix:
postconf -d
Посмотреть сколько сообщений в очереди:
mailq | grep Requests
Посмотреть конкретно что в очереди:
mailq
Пнуть очередь на немедленную доставку:
postsuper -r ALL; postfix flush
Пнуть конкретное письмо по ID:
postsuper -r ID
Удалить письмо по ID:
postsuper -d ID
Удалить всю очередь:
postsuper -d ALL
postcat -b 4E62A1C0493
Посмотреть активные настройки Postfix:
postconf -d
Посмотреть сколько сообщений в очереди:
mailq | grep Requests
Посмотреть конкретно что в очереди:
mailq
Пнуть очередь на немедленную доставку:
postsuper -r ALL; postfix flush
Пнуть конкретное письмо по ID:
postsuper -r ID
Удалить письмо по ID:
postsuper -d ID
Удалить всю очередь:
postsuper -d ALL
Заблокировать поисковые боты в Nginx по User-Agent
Прописываем вначале server
if ($http_user_agent ~ WordPress|SemrushBot|SputnikBot|Crowsnest|PaperLiBot|peerindex|ia_archiver|Slurp|Aport|NING|JSKit|rogerbot|BLEXBot|MJ12bot|Twiceler|Baiduspider|Java|CommentReader|Yeti|discobot|BTWebClient|Tagoobot|Ezooms|igdeSpyder|AhrefsBot|Teleport|Offline|DISCo|netvampire|Copier|HTTrack|WebCopier|GrapeshotCrawler|coccocbotweb|HybridBot|magpiecrawlerHostTracker|Riddler|SentiBot|HostTracker) {
return 403;
}
if ($http_user_agent ~ WordPress|SemrushBot|SputnikBot|Crowsnest|PaperLiBot|peerindex|ia_archiver|Slurp|Aport|NING|JSKit|rogerbot|BLEXBot|MJ12bot|Twiceler|Baiduspider|Java|CommentReader|Yeti|discobot|BTWebClient|Tagoobot|Ezooms|igdeSpyder|AhrefsBot|Teleport|Offline|DISCo|netvampire|Copier|HTTrack|WebCopier|GrapeshotCrawler|coccocbotweb|HybridBot|magpiecrawlerHostTracker|Riddler|SentiBot|HostTracker) {
return 403;
}
cPanel не работает phpmyadmin
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
Переходим в каталог /usr/local/cpanel/base/3rdparty/phpMyAdmin/
Там есть файл .php.ini - это symlink на /usr/local/cpanel/3rdparty/php/56/etc/phpmyadmin/php.ini
Открываем его в редакторе и раскоментируем
session.save_path = "/tmp"
Перезапускаем cpsrvd (поскольку он "слушает" порт 2083 ssl на котором работает cpanel и по которому вы получаете данную ошибку по ссылке вида https://example.com:2083/cpsess3131291/3rdparty/phpMyAdmin/....) и обрабатывает php-скрипты как fastcgi (если в директории phpmyadmin разместить phpinfo это видно равно как пустой путь для сохранения сессий)
service cpanel restart
Проблема должна быть решена
"Закрыть доступ по IP" nginx bitrix окружение
vi /etc/nginx/bx/site_enabled/s1.conf
if ($http_host ~ "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}") {
return 444;
}
if ($http_host ~ "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}") {
return 444;
}
Борьба с DDOS атаками вида synflood
Подсчет числа полуоткрытых TCP-соединений:
$ netstat -na | grep ":порт\ " | grep SYN_RCVD | wc -l
Просмотр списка IP-адресов, с которых идут запросы на подключение:
$ netstat -na | grep ":порт\ " | sort | uniq -c | sort -nr
Анализ подозрительных пакетов с помощью tcpdump:
# tcpdump -n -i eth0 -s 0 -w output.txt dst port порт and host IP-сервера
Блокируем подключения атакующего:
# iptables -A INPUT -s IP-атакующего -p tcp --destination-port порт -j DROP
Ограничиваем максимальное число полуоткрытых соединений с одного IP к конкретному порту:
# iptables -I INPUT -p tcp --syn --dport порт -m iplimit --iplimit-above 8 -j DROP
Отключаем ответы на запросы ICMP ECHO:
# iptables -A INPUT -p icmp -j DROP --icmp-type 8
Устанавливаем netstat в CentOS 7:
# yum install net-tools
$ netstat -na | grep ":порт\ " | grep SYN_RCVD | wc -l
Просмотр списка IP-адресов, с которых идут запросы на подключение:
$ netstat -na | grep ":порт\ " | sort | uniq -c | sort -nr
Анализ подозрительных пакетов с помощью tcpdump:
# tcpdump -n -i eth0 -s 0 -w output.txt dst port порт and host IP-сервера
Блокируем подключения атакующего:
# iptables -A INPUT -s IP-атакующего -p tcp --destination-port порт -j DROP
Ограничиваем максимальное число полуоткрытых соединений с одного IP к конкретному порту:
# iptables -I INPUT -p tcp --syn --dport порт -m iplimit --iplimit-above 8 -j DROP
Отключаем ответы на запросы ICMP ECHO:
# iptables -A INPUT -p icmp -j DROP --icmp-type 8
Устанавливаем netstat в CentOS 7:
# yum install net-tools
Разметка диска под gpt и gmirror FreeBSD
Когда в системе только один диск достаточно сделать
Очищаем диск от старой таблицы разметки
gpart destroy -F /dev/ada0
dd if=/dev/zero of=/dev/ada0 count=1 bs=1024
Создаем разметку gpt с 3 партициями, записываем в первую загрузочный bootcode
gpart create -s gpt ada0
gpart add -t freebsd-boot -s 128k ada0
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
gpart add -t freebsd-swap -l swapada0 -s 16G ada0
gpart add -t freebsd-ufs -l rootfsada0 ada0
После чего создаем зеркало raid1
gmirror load
gmirror label -v rootfs /dev/gpt/rootfsada0
gmirror label -v swap /dev/gpt/swapada0
Далее форматируем файловую систему
newfs -U /dev/mirror/rootfs
И затем переносим нужную систему через rsync / pax / или чистую ОС
Копирование таблицы разделов на другой диск
gpart backup ada0 | gpart restore -F /dev/ada1
И потом добавление в зеркало
gmirror insert swap /dev/ada1p2
gmirror insert rootfs /dev/ada1p3
В /boot/loader.conf при этом должно быть
geom_mirror_load="YES"
ahci_load="YES"
И в /etc/fstab
/dev/mirror/swap none swap sw 0 0
/dev/mirror/rootfs / ufs rw 1 1
Смотри также: Зеркалирование дисков на выделенном сервере
Скрипт установки: http://dl.ispsystem.info/freebsd-hetzner-install.sh
Очищаем диск от старой таблицы разметки
gpart destroy -F /dev/ada0
dd if=/dev/zero of=/dev/ada0 count=1 bs=1024
Создаем разметку gpt с 3 партициями, записываем в первую загрузочный bootcode
gpart create -s gpt ada0
gpart add -t freebsd-boot -s 128k ada0
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
gpart add -t freebsd-swap -l swapada0 -s 16G ada0
gpart add -t freebsd-ufs -l rootfsada0 ada0
После чего создаем зеркало raid1
gmirror load
gmirror label -v rootfs /dev/gpt/rootfsada0
gmirror label -v swap /dev/gpt/swapada0
Далее форматируем файловую систему
newfs -U /dev/mirror/rootfs
И затем переносим нужную систему через rsync / pax / или чистую ОС
Копирование таблицы разделов на другой диск
gpart backup ada0 | gpart restore -F /dev/ada1
И потом добавление в зеркало
gmirror insert swap /dev/ada1p2
gmirror insert rootfs /dev/ada1p3
В /boot/loader.conf при этом должно быть
geom_mirror_load="YES"
ahci_load="YES"
И в /etc/fstab
/dev/mirror/swap none swap sw 0 0
/dev/mirror/rootfs / ufs rw 1 1
Смотри также: Зеркалирование дисков на выделенном сервере
Скрипт установки: http://dl.ispsystem.info/freebsd-hetzner-install.sh
Перенос FreeBSD с диска на диск
Если нет rsync (привет hetzner rescue)
cd /mnt-old; pax -p e -X -rw . /mnt-new
cd /mnt-old; pax -p e -X -rw . /mnt-new
bitrix получить доступ в админку сайта
В каталоге сайта создаете php файл pusti.php с секретным именем и содержимым ниже:
<?
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
global $USER;
$USER->Authorize(1);
?>
<a href='/bitrix/admin/index.php'>ЖМИ СЮДА</a>
После работ обязательно удалите данный файл для избежания взлома сайта
<?
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
global $USER;
$USER->Authorize(1);
?>
<a href='/bitrix/admin/index.php'>ЖМИ СЮДА</a>
После работ обязательно удалите данный файл для избежания взлома сайта
Генератор SSL конфига веб-сервера который соответствует требованиям безопасности
https://mozilla.github.io/server-side-tls/ssl-config-generator/
Смотрите также https://wiki.mozilla.org/Security/Server_Side_TLS
Генерация dhparam файла
openssl dhparam -out dhparam.pem 4096
Смотрите также https://wiki.mozilla.org/Security/Server_Side_TLS
Генерация dhparam файла
openssl dhparam -out dhparam.pem 4096
дополнительная авторизация в phpmyadmin
# cat /usr/share/phpMyAdmin/.htaccess
AuthType Basic
AuthName "Private zone"
AuthUserFile /etc/phpMyAdmin/.htpass
require valid-user
# htpasswd -c /etc/phpMyAdmin/.htpass myadmin
# grep AllowOverride /etc/httpd/conf.d/phpmyadmin.conf
# AllowOverride None
AllowOverride AuthConfig
AuthType Basic
AuthName "Private zone"
AuthUserFile /etc/phpMyAdmin/.htpass
require valid-user
# htpasswd -c /etc/phpMyAdmin/.htpass myadmin
# grep AllowOverride /etc/httpd/conf.d/phpmyadmin.conf
# AllowOverride None
AllowOverride AuthConfig
Монтируем ftp как папку
curlftpfs user:pass@ftp.example.com /mnt/ftp
Открыть запись для остальных пользователей можно опцией allow_other
Например, открываем для пользователя с uid 1001
curlftpfs ftp://user:pass@ftp.example.com /mnt/ftp -o allow_other,uid=1001,gid=1001,umask=077,default_permissions
Монтируем через /etc/fstab
curlftpfs#ftp.example.com /mnt/ftp fuse noauto,user=user:pass,allow_other,default_permissions,umask=022,_netdev 0 0
Отмонтируем
fusermount -u /mnt/ftp
Не рекомендую это решение в production, так как даже при тестирование наблюдаются проблемы с низкой скоростью и плохой загрузкой больших файлов
Открыть запись для остальных пользователей можно опцией allow_other
Например, открываем для пользователя с uid 1001
curlftpfs ftp://user:pass@ftp.example.com /mnt/ftp -o allow_other,uid=1001,gid=1001,umask=077,default_permissions
Монтируем через /etc/fstab
curlftpfs#ftp.example.com /mnt/ftp fuse noauto,user=user:pass,allow_other,default_permissions,umask=022,_netdev 0 0
Отмонтируем
fusermount -u /mnt/ftp
Не рекомендую это решение в production, так как даже при тестирование наблюдаются проблемы с низкой скоростью и плохой загрузкой больших файлов
bitrix не меняется max_execution_time
В php.ini и phpinfo(); показывается max_execution_time=900, а в http://example.com/bitrix/admin/phpinfo.php (открывается после входа в админку) - 300
Открываем bitrix/php_interface/dbconn.php и правим
@set_time_limit(900);
Там же можно править ini_set("memory_limit", "1024M");
Этот параметр реально влияет на всё в битриксе, скажем на время при импорте данных из 1С и другие скрипты
Открываем bitrix/php_interface/dbconn.php и правим
@set_time_limit(900);
Там же можно править ini_set("memory_limit", "1024M");
Этот параметр реально влияет на всё в битриксе, скажем на время при импорте данных из 1С и другие скрипты
Проблема с загрузкой лицензии ISPmanager
Если ISPmanager 5 упорно не загружает лицензию, то стоит проверить работу https на сервере выполнив команду взяв url из licctl.log
# curl -v -k -o- https://212.109.222.143/mgr5.45.state
* About to connect() to 212.109.222.143 port 443 (#0)
* Trying 212.109.222.143...
* Connected to 212.109.222.143 (212.109.222.143) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* Unable to initialize NSS database
* Initializing NSS with certpath: none
* NSS error -5938 (PR_END_OF_FILE_ERROR)
* Encountered end of file
* Closing connection 0
curl: (35) Encountered end of file
В моем случае проблема была с битыми файлами в /etc/pki/nssdb/ и исправлено заменой файлов с исправной системы
Примечательно, что изначально я запускал wget --no-check-certificate и так делать нельзя, так как проверка не была пройдена и ошибка не была видна в отличии от curl, так как панель использует libcurl
# curl -v -k -o- https://212.109.222.143/mgr5.45.state
* About to connect() to 212.109.222.143 port 443 (#0)
* Trying 212.109.222.143...
* Connected to 212.109.222.143 (212.109.222.143) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* Unable to initialize NSS database
* Initializing NSS with certpath: none
* NSS error -5938 (PR_END_OF_FILE_ERROR)
* Encountered end of file
* Closing connection 0
curl: (35) Encountered end of file
В моем случае проблема была с битыми файлами в /etc/pki/nssdb/ и исправлено заменой файлов с исправной системы
Примечательно, что изначально я запускал wget --no-check-certificate и так делать нельзя, так как проверка не была пройдена и ошибка не была видна в отличии от curl, так как панель использует libcurl
debian 6.0 поставить rsync и другой старый софт
# tail -1 /etc/apt/sources.list
deb http://archive.debian.org/debian/ squeeze main contrib non-free
apt-get update
apt-get install rsync
deb http://archive.debian.org/debian/ squeeze main contrib non-free
apt-get update
apt-get install rsync
не работает ssi в apache debian
Необходимо подключить модуль include_module
# ln -s /etc/apache2/mods-available/include.load /etc/apache2/mods-enabled/include.load
# apachectl restart
# ln -s /etc/apache2/mods-available/include.load /etc/apache2/mods-enabled/include.load
# apachectl restart
не работает поиск в phpmyadmin centos 7 из-за ошибки в php-gettext
Включаем отображение ошибок
vi /etc/httpd/conf.d/phpmyadmin.conf
php_admin_flag engine on
php_admin_value display_errors on
php_admin_value error_reporting 30711
php_admin_flag ini_set on
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Select_string only accepts integers: 0' in /usr/share/php/gettext/gettext.php:354 Stack trace: #0 /usr/share/php/gettext/gettext.php(388): gettext_reader->select_string('0') #1 /usr/share/php/gettext/gettext.inc(293): gettext_reader->ngettext('%1$s match in <...', '%1$s matches in...', '0') #2 /usr/share/phpMyAdmin/libraries/DbSearch.class.php(337): _ngettext('%1$s match in <...', '%1$s matches in...', '0') #3 /usr/share/phpMyAdmin/libraries/DbSearch.class.php(289): PMA_DbSearch->_getResultsRow('wp_appointment_...', Array, true, '0') #4 /usr/share/phpMyAdmin/db_search.php(46): PMA_DbSearch->getSearchResults() #5 {main} thrown in /usr/share/php/gettext/gettext.php on line 354
Согласно http://bazaar.launchpad.net/~danilo/php-gettext/trunk/revision/61 проблема в php-gettext и правится в /usr/share/php/gettext/gettext.php на 435 строке комментированием кода
if (!is_int($n)) {
throw new InvalidArgumentException(
"Select_string only accepts integers: " . $n);
}
vi /etc/httpd/conf.d/phpmyadmin.conf
php_admin_flag engine on
php_admin_value display_errors on
php_admin_value error_reporting 30711
php_admin_flag ini_set on
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Select_string only accepts integers: 0' in /usr/share/php/gettext/gettext.php:354 Stack trace: #0 /usr/share/php/gettext/gettext.php(388): gettext_reader->select_string('0') #1 /usr/share/php/gettext/gettext.inc(293): gettext_reader->ngettext('%1$s match in <...', '%1$s matches in...', '0') #2 /usr/share/phpMyAdmin/libraries/DbSearch.class.php(337): _ngettext('%1$s match in <...', '%1$s matches in...', '0') #3 /usr/share/phpMyAdmin/libraries/DbSearch.class.php(289): PMA_DbSearch->_getResultsRow('wp_appointment_...', Array, true, '0') #4 /usr/share/phpMyAdmin/db_search.php(46): PMA_DbSearch->getSearchResults() #5 {main} thrown in /usr/share/php/gettext/gettext.php on line 354
Согласно http://bazaar.launchpad.net/~danilo/php-gettext/trunk/revision/61 проблема в php-gettext и правится в /usr/share/php/gettext/gettext.php на 435 строке комментированием кода
if (!is_int($n)) {
throw new InvalidArgumentException(
"Select_string only accepts integers: " . $n);
}
Использование утилиты ddrescue для восстановления данных
ddrescue - это утилита для восстановления данных с поврежденной поверхности диска
При выборе между dd_rescue и ddrescue используйте ddrescue - подробности https://habrahabr.ru/post/236977
Сравнивая с dd_rescue - умеет сохранять сбойные блоки в лог-файл и затем восстанавливать их отдельно и не умеет пересылать данные в pipe (скажем для копирования по сети через ssh-транспорт)
ddrescue -f -n /dev/sda /dev/sdb ddrescue.log
Копируем только сбойные блоки согласно ddrescue.log делая 3 попытки их чтения
ddrescue -f -d -r3 /dev/sda /dev/sdb ddrescue.log
Как правило двух этих простых команд достаточно для восстановления данных с диска на котором появились сбойные блоки
Происходит остановка копирования при чтении с битого диска на позиции 12345
Перезапуск восстановления с байта 12345
ddrescue -f -n -i 12345 /dev/sda /dev/sdb ddrescue.log
Перезапуск восстановления с конца диска
ddrescue -f -n -R /dev/sda /dev/sdb ddrescue.log
Не забываем после всего про опцию -dr3 для перечитывания битых блоков согласно log-файлу
Заставить ddrescue перезаписать диск outfile. Необходим, когда в качестве outfile используется устройство. Используется для защиты от ошибочного повреждения данных.
-n
Пропускает фазу scrape. Уменьшает время восстановления, снижает время на попытки чтения самых трудных частей файла.
-d
При указании данной опции, ddrescue использует прямой доступ к диску, обходя кэши ядра
-r n
Задает количество повторных попыток чтения поврежденных областей
-R
ddrescue читает данные в обратной последовательности
При выборе между dd_rescue и ddrescue используйте ddrescue - подробности https://habrahabr.ru/post/236977
Сравнивая с dd_rescue - умеет сохранять сбойные блоки в лог-файл и затем восстанавливать их отдельно и не умеет пересылать данные в pipe (скажем для копирования по сети через ssh-транспорт)
Сценарий восстановления с неисправного диска на исправный
Копируем с неисправного диска /dev/sda на исправный /dev/sdb сбойные блоки пропускаем и сохраняем о них информацию в logddrescue -f -n /dev/sda /dev/sdb ddrescue.log
Копируем только сбойные блоки согласно ddrescue.log делая 3 попытки их чтения
ddrescue -f -d -r3 /dev/sda /dev/sdb ddrescue.log
Как правило двух этих простых команд достаточно для восстановления данных с диска на котором появились сбойные блоки
Происходит остановка копирования при чтении с битого диска на позиции 12345
Перезапуск восстановления с байта 12345
ddrescue -f -n -i 12345 /dev/sda /dev/sdb ddrescue.log
Перезапуск восстановления с конца диска
ddrescue -f -n -R /dev/sda /dev/sdb ddrescue.log
Не забываем после всего про опцию -dr3 для перечитывания битых блоков согласно log-файлу
Расшифровка опций
-fЗаставить ddrescue перезаписать диск outfile. Необходим, когда в качестве outfile используется устройство. Используется для защиты от ошибочного повреждения данных.
-n
Пропускает фазу scrape. Уменьшает время восстановления, снижает время на попытки чтения самых трудных частей файла.
-d
При указании данной опции, ddrescue использует прямой доступ к диску, обходя кэши ядра
-r n
Задает количество повторных попыток чтения поврежденных областей
-R
ddrescue читает данные в обратной последовательности
top в cron : простой мониторинг нагрузки сервера
# crontab -l
*/5 * * * * /bin/date >> /tmp/mon.log ; /usr/bin/top -b -n 1 >> /tmp/mon.log
В /tmp/mon.log можно будет посмотреть что было незадолго до падения сервера, как вариант
*/5 * * * * /bin/date >> /tmp/mon.log ; /usr/bin/top -b -n 1 >> /tmp/mon.log
В /tmp/mon.log можно будет посмотреть что было незадолго до падения сервера, как вариант
Установка Firefox ESR на Ubuntu 16.04
wget https://download-installer.cdn.mozilla.net/pub/firefox/releases/52.0esr/linux-x86_64/ru/firefox-52.0esr.tar.bz2
sudo -s
tar -xf firefox-52.0esr.tar.bz2 -C /opt/
dpkg-divert --divert /usr/bin/firefox.unuse --rename /usr/bin/firefox
ln -s /opt/firefox/firefox /usr/bin/firefox
Так как опция ui.use_unity_menubar true не работает (оно жестко вкопмиляно в /usr/lib/firefox/libxul.so (чтобы увидеть меню обычное нажмите alt) - ставим плагин https://addons.mozilla.org/ru/firefox/addon/compact-menu-2/
Немного не так привычно (к отдельной кнопке меню которую надо добавить через настройки панели можно привыкнуть), зато имеем целый год одну и ту же версию firefox в которой точно будет работать java-плагин
Для этого не забываем про about:config - plugin.load_flash_only = false
Обновлять эту версию придется вручную запустив с правами root и затем Справка - о Firefox
Также, как показала практика, данная версия firefox расходует в 1.5 раза меньше памяти и работает быстрее, чем из штатного репозитория
sudo -s
tar -xf firefox-52.0esr.tar.bz2 -C /opt/
dpkg-divert --divert /usr/bin/firefox.unuse --rename /usr/bin/firefox
ln -s /opt/firefox/firefox /usr/bin/firefox
Так как опция ui.use_unity_menubar true не работает (оно жестко вкопмиляно в /usr/lib/firefox/libxul.so (чтобы увидеть меню обычное нажмите alt) - ставим плагин https://addons.mozilla.org/ru/firefox/addon/compact-menu-2/
Немного не так привычно (к отдельной кнопке меню которую надо добавить через настройки панели можно привыкнуть), зато имеем целый год одну и ту же версию firefox в которой точно будет работать java-плагин
Для этого не забываем про about:config - plugin.load_flash_only = false
Обновлять эту версию придется вручную запустив с правами root и затем Справка - о Firefox
Также, как показала практика, данная версия firefox расходует в 1.5 раза меньше памяти и работает быстрее, чем из штатного репозитория
bitrix вебокружение downgrade php 7.0 до 5.6
Автоматический режим
Идем в меню битрикс окружения и меняем там
Ручной режим
vi /etc/yum.repos.d/remi-php70.repo
vi /etc/yum.repos.d/remi.repo
отключаем 7, включаем 56
yum remove php-*
yum install bitrix-env
yum install php-pecl-zendopcache
apachectl restart
Идем в меню битрикс окружения и меняем там
Ручной режим
vi /etc/yum.repos.d/remi-php70.repo
vi /etc/yum.repos.d/remi.repo
отключаем 7, включаем 56
yum remove php-*
yum install bitrix-env
yum install php-pecl-zendopcache
apachectl restart
Возвращаем поддержку NPAPI в Firefox - включаем поддержку Java
В Firefox 52 отключили поддержку всех NAPI плагинов включая Java, Acrobat, Silverlight и других кроме Flash
http://www.opennet.ru/opennews/art.shtml?num=46155
Вернуть обратно можно через
about:config и там создать параметр
plugin.load_flash_only = false
Однако, в версии 53 этот параметр отключат полностью и необходимо переходить на версию Firefox 52 ESR
http://www.opennet.ru/opennews/art.shtml?num=46155
Вернуть обратно можно через
about:config и там создать параметр
plugin.load_flash_only = false
Однако, в версии 53 этот параметр отключат полностью и необходимо переходить на версию Firefox 52 ESR
MySQL создать пользователя и выдать доступ к базе данных
Как создать пользователя в MySQL сервере и выдать права пользователю на базу данных вручную
MariaDB [(none)]> CREATE USER 'username'@'localhost' IDENTIFIED BY 'pas$w0rd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON databasename.* TO 'username'@'localhost';
MariaDB [(none)]> CREATE USER 'username'@'localhost' IDENTIFIED BY 'pas$w0rd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON databasename.* TO 'username'@'localhost';
bitrix перевод на mysqli
Переводим битрикс на MySQLi с MySQL при переносе на PHP 7
# vi /home/bitrix/www/bitrix/php_interface/dbconn.php
define("BX_USE_MYSQLI", true);
# vi /home/bitrix/www/bitrix/.settings.php
array (
'default' =>
array (
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
'host' => 'localhost',
# vi /home/bitrix/www/bitrix/php_interface/dbconn.php
define("BX_USE_MYSQLI", true);
# vi /home/bitrix/www/bitrix/.settings.php
array (
'default' =>
array (
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
'host' => 'localhost',
bitrix включить debug сайта
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2795
# vi /home/bitrix/www/bitrix/php_interface/dbconn.php
$DBDebug = true;
$DBDebugToFile = true;
# vi /home/bitrix/www/bitrix/.settings.php
'exception_handling' => array (
'value' => array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
# vi /home/bitrix/www/bitrix/php_interface/dbconn.php
$DBDebug = true;
$DBDebugToFile = true;
# vi /home/bitrix/www/bitrix/.settings.php
'exception_handling' => array (
'value' => array (
'debug' => true,
'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' => array (
'settings' => array (
'file' => 'bitrix/modules/error.log',
'log_size' => 1000000,
),
),
),
'readonly' => false,
),
Firefox пишет много данных на SSD
about:config - browser.sessionstore.interval
По-умолчанию он равен 15 секундам (15000) и можно смело увеличивать аж до 30 минут
10 минут - это 600000
Источник: https://geektimes.ru/post/280792/
По-умолчанию он равен 15 секундам (15000) и можно смело увеличивать аж до 30 минут
10 минут - это 600000
Источник: https://geektimes.ru/post/280792/
Расширения отображающие IP адрес сайта в realtime для браузера
Firefox - Server IP
https://addons.mozilla.org/ru/firefox/addon/server-ip/
Chrome - Website IP
https://chrome.google.com/webstore/detail/website-ip/ghbmhlgniedlklkpimlibbaoomlpacmk
Все остальные "лазят в интернет" к внешним сайтам и не отображают то, что реально отрезолвлено скажем на основании записи в /etc/hosts и тем самым непригодны для работы
https://addons.mozilla.org/ru/firefox/addon/server-ip/
Chrome - Website IP
https://chrome.google.com/webstore/detail/website-ip/ghbmhlgniedlklkpimlibbaoomlpacmk
Все остальные "лазят в интернет" к внешним сайтам и не отображают то, что реально отрезолвлено скажем на основании записи в /etc/hosts и тем самым непригодны для работы
Дополнительные возможности phpMyAdmin не настроены в полной мере, некоторые функции были отключены
# vi config.inc.php
$cfg['PmaNoRelation_DisableWarning'] = TRUE;
$cfg['PmaNoRelation_DisableWarning'] = TRUE;
Поменять IP адрес в WWW домены в ISPmanager
После того как при помощи sed изменен IP адрес в файлах конфигурации apache/nginx/named чтобы не менять IP в WWW домены (и тем самым не портить конфиги) проще всего поменять в базе панели
# sqlite3 /usr/local/mgr5/etc/ispmgr.db
sqlite> update webdomain_ipaddr set value='188.120.234.73';
# killall core
# sqlite3 /usr/local/mgr5/etc/ispmgr.db
sqlite> update webdomain_ipaddr set value='188.120.234.73';
# killall core
ipmi reset сброс конфигурации на заводские настройки
wget ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_1.26.0_20161227.zip(mirror)
wget http://dl.ispsystem.info/ipmi/IPMICFG_1.24.1_build.160222.zip
unzip IPMICFG_1.24.1_build.160222.zip
chmod +x IPMICFG_1.24.1_build.160222/Linux/32bit/IPMICFG-Linux.x86
IPMICFG_1.24.1_build.160222/Linux/32bit/IPMICFG-Linux.x86 -fd
wget http://dl.ispsystem.info/ipmi/IPMICFG_1.24.1_build.160222.zip
unzip IPMICFG_1.24.1_build.160222.zip
chmod +x IPMICFG_1.24.1_build.160222/Linux/32bit/IPMICFG-Linux.x86
IPMICFG_1.24.1_build.160222/Linux/32bit/IPMICFG-Linux.x86 -fd
Подписаться на:
Сообщения (Atom)