Вывод массива php
Часто есть необходимость посмотреть что содержит переменная или массив. Ниже несколько вариантов как это можно сделать, в том числе незаметно для посетителей сайта.
<div style="display: none;"><? echo json_encode($arResult['ITEMS']);?></div>
<textarea style="display: none;"><? echo var_export($arResult['ITEMS']);?></textarea>
<?global $USER; if($USER->isAdmin()){echo ‘<pre>’;print_r($array);echo ‘</pre>}?>
<? echo "<pre>"; print_r ($arResult); echo "</pre>"; ?>
<?echo "<pre style='display: inline;'>"; print_r(get_defined_vars());echo "</pre>";?> //вывод массива всех определенных серверных и пользовательских переменных
Запись массива в файл или лог Apache
Если нет возможности вывести массив на страницу, то можно записать его в файл
$current = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt');
$current .= "John Smith\n";
$current .= var_export($_SESSION, true);
file_put_contents($file, $current);
или лог Apache
error_log ("blyat` ".var_export($arStatus, true), 0);
error_log ("blyat` ".var_export($arStatus, true), 1, "wer@mail.ru")
Вывод лога в реальном времени.
tail -f /var/log/syslogРабота с базой
Посмотреть какие запросы идут в базу можно так:mysql -uroot -p
пароль затем
SHOW PROCESSLIST;
Прямое обращение к базе работает на много быстрее чем через API битрикса.
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/dbconn.php");
$db=new PDO($DBType.':host='.$DBHost.';dbname='.$DBName, $DBLogin, $DBPassword);
$db->query("SET CHARACTER SET utf8");
$res=$db->prepare(" SELECT VALUE FROM `b_iblock_element_property` WHERE (`IBLOCK_PROPERTY_ID`='3847' and `IBLOCK_ELEMENT_ID` LIKE '%".$item['id']."%')");
$res->execute();// выборка из базы возвращает код товара поставщика по внутреннему коду товара
if($row=$res->fetch()){
if ($row<1){error_log ("пусто", 0);}
else echo $row[0];
}
Интерактивная консоль php
Проверить код можно в интерактивной консоли php. Для этого в терминале нужно запустить команду
php -a
SSH
Монтируем файловую систему удаленного сервера к своейsshfs user@domen.ru:/ /media/sshfsdomen.ru -o reconnect
Если злобный админ закрыл куда-нибудь доступ
sudo ssh -D 777 user@domen.ru
получаем socks сервер на localhost:777Просмотр лога в реальном времени.
ssh myyser@site.ru tail -f /var/log/nginx/error.log
Посмотреть кто зашел
who
Проверка свободного места на диске
Куда делось место на диске покажет командаdf -h
du -h | grep "[0-9]M" | sort -n -r
Работа с архивами
Распаковать бэкап битрикса можно командой<sudo cat *.* | tar xzv
Поиск куска кода
sudo find -type f -name '*.php' | xargs grep -l "echo '$aritem" --color
Задать права на файлы рекурсивно
sudo chmod -R 777 /bitrix/templates/newtempl
Дамп TCP
tcpdump -vX -i eth0 port 80
Смотрим подключения
netstat -tap | grep nginx
fail2ban iptables
Забаннитьiptables -I INPUT -j DROP -s 58.40.10.2
iptables -I INPUT -m iprange --src-range 5.143.231.0-5.143.231.255 -j DROP
Алиасы .bashrc или в .bash_aliases для быстрого банна
alias ban=’iptables -I INPUT -j DROP -s’
alias unban=’iptables -D INPUT -j DROP -s’
Список забанненых
iptables-saveили
iptables -L -n -v --line-numbers
Удалить ip из банна
alias ban=’iptables -I INPUT -j DROP -s’
alias unban=’iptables -D INPUT -j DROP -s’
iptables-saveили
iptables -L -n -v --line-numbers
Удалить ip из банна
iptables -D fail2ban-ssh -j DROP -s 46.20.67.32/32
iptables -D fail2ban-ssh 1
iptables -D fail2ban-ssh 1
Остановить, запустить файрвол.
service ufw stop
service ufw start
Сохраняем правила файрвола.
iptables-save > /etc/iptables.rules
Восстанавливаем правила.
iptables-restore < /etc/iptables.rules
Комментариев нет :
Отправить комментарий