четверг, 27 июня 2024 г.

clamAV

 антивирус для сайта

ставим 

sudo apt install clamav clamav-daemon  

(для centos 7)

После установки нужно настроить автоматическое обновление баз антивируса и регулярное сканирование дисковой системы
ля того, чтобы обновить антивирусную базу, сначала надо остановить сервис автоматического обновления баз данных:

Вариант 1. Обновление через freshclam

Для автоматического обновления следует добавить в конфигурационный файл /etc/clamav/freshclam.conf строки:

PrivateMirror https://mirror.truenetwork.ru/clamav/
ScriptedUpdates no

Выполнить:

sudo freshclam -vvv

Вариант 2. Обновление с помощью скрипта.

Создайте скрипт:

nano ./update_clamav.sh

Поместите в него следующее содержимое и сохраните:

#!/bin/bash

systemctl stop clamav-freshclam
rm -rf /var/lib/clamav/*
wget https://mirror.truenetwork.ru/clamav/main.cvd -O /var/lib/clamav/main.cvd 
wget https://mirror.truenetwork.ru/clamav/daily.cvd -O /var/lib/clamav/daily.cvd 
wget https://mirror.truenetwork.ru/clamav/bytecode.cvd -O /var/lib/clamav/bytecode.cvd

Запустите скрипт обновления: 

bash update_clamav.sh

Добавьте задание в cron для еженедельного обновления:

nano /etc/crontab

Добавьте туда строчку и сохраните:

0 0 * * 0 root /root/update_clamav.sh


Примеры использования

Просканировать конкретный файл: 

    
clamscan имя_файла

Выполнить сканирование директории и вывести только зараженные файлы: 

    
clamscan -r -i /директория

Переместить зараженные файлы в определенную директорию: 

    
clamscan -r -i --move=/папка_куда_переносим /папка_для_сканирования

Автоматически удалять зараженные файлы при обнаружении (используйте с осторожностью!):

    
clamscan -r --remove /папка_для_сканирования

четверг, 11 апреля 2024 г.

Bitrix HigloadBlocks сортировка по указанному порядку

 Для того чтобы выбарка была в указанном порядке например
5,6,1,8,7

$res = $entity_data_class::getList(
array(
"order" => array("SORT_XML" => "ASC"),
'runtime' => array(
'SORT_XML'=>array(
'data_type' => 'STRING',
'expression' => array(
'FIND_IN_SET(`UF_XML_ID`, "'.implode(",", $XML_ID).'")'
)
)
),
'filter'=>array(
'UF_XML_ID' => $XML_ID,
)
)
);

в  $XML_ID я указал xml_id с типом строка, поэтому 'data_type' => 'STRING'
фильтровать мне нужно по полю UF_XML_ID но приходит он массивом поэтому используем implode


аналог в mysql

SELECT * FROM `catalog` ORDER BY FIND_IN_SET(cat_id,'157,156,155') DESC

четверг, 2 ноября 2023 г.

Bitrix лог

 В лог не удобно передавать массивы, вот отличный пример как это сделать

define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/local/log/log1.txt");
ob_start();
echo 'request';
print_r($arFields);
$log_text = ob_get_contents();
ob_end_clean();

AddMessage2Log($log_text, "php_init");

четверг, 16 марта 2023 г.

Быстрое подключение PhpMyAdmin

 по SSH


# cd /tmp/
# wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
# yum install unzip
# unzip phpMyAdmin-5.2.1-all-languages.zip
# mv phpMyAdmin-5.2.1-all-languages pma
# mv pma /home/bitrix/ext_www/project.ru/
# chown -R bitrix:bitrix /home/bitrix/ext_www/project.ru/pma/tmp
# mkdir /home/bitrix/ext_www/project.ru/pma/tmp
# chown -R bitrix:bitrix /home/bitrix/ext_www/project.ru/pma/tmp

после этого заходим на сайт  project.ru/pma/

вторник, 4 октября 2022 г.

send telegram




function t_me($tgText, $files=false, $chats_id = ["-xxx"]){

$token = "11111:aaaaa";
$site = $_SERVER['SERVER_NAME'];//$_SERVER['HTTP_ORIGIN']

foreach ($chats_id as $chat) {
$url = "https://api.telegram.org/bot{$token}/sendMessage";

$arrayQuery = [
"chat_id" => $chat,
"text" => $tgText.$site . $files[0],
"parse_mode" => "html",
"message_thread_id"=> 2//id нужного топика
];

if (is_array($files)) {
if(count($files) == 1) {
$url = 'https://api.telegram.org/bot' . $token . '/sendDocument';
$arrayQuery['document'] = $site . $files[0];
$arrayQuery["caption"] = $tgText;
}else {
$arMedia = array();
$url = 'https://api.telegram.org/bot' . $token . '/sendMediaGroup';
foreach ($files as $key => $path) {
if($key == 0) {
$arMedia[] = array('type' => 'photo', 'media' => $site.$path, "caption" => $tgText, "parse_mode"=>"html");
}else{
$arMedia[] = array('type' => 'photo', 'media' => $site.$path);
}
}
$arrayQuery['media'] = json_encode( $arMedia );
}
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrayQuery);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type:multipart/form-data"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close ($ch);

return $res;
}
}

среда, 20 июля 2022 г.

вторник, 31 мая 2022 г.

bitrix парсер телефона

 подключаем 

use Bitrix\Main\UserPhoneAuthTable;

use Bitrix\Main\Analytics\Catalog;

$phone = '+7 999 999-99-99';

var_dump(Bitrix\Main\UserPhoneAuthTable::normalizePhoneNumber($phone, 'ru'));//+79999999999

var_dump(Bitrix\Main\Analytics\Catalog::normalizePhoneNumber($phone));//79999999999