четверг, 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