crontab -u userLogin -lЧтобы отредактировать файл задач crontab сначала переключим редактор с vi на более удобный mcedit:
export EDITOR=mceditЗатем отредактируем задачи cron, которые запускаются под пользователем "userLogin":
crontab -u userLogin -e
grep CRON /var/log/syslog | tail -n 10
yum -y install memcachedВ файле /etc/sysconfig/memcached заменяем строку OPTIONS на:
OPTIONS="-l 127.0.0.1"Добавляем memcached в автозагрузку:
service memcached start chkconfig memcached onСтавим библиотеку PHP-memcache:
yum -y install php-pecl-memcacheПоследнее возможно не понадобится, т.к. в виртуальной машине Битрикс этот модуль есть по-умолчанию.
'cache' => array(
'value' => array (
'type' => 'memcache',
'sid' => $_SERVER["DOCUMENT_ROOT"]."#site01",
'memcache' => array(
'host' => '127.0.0.1',
'port' => '11211',
),
),
'readonly' => false,
),
Всё. Теперь в панели производительности Битрикс (http://site.com/bitrix/admin/perfmon_panel.php) должны увидеть:
use Bitrix\Iblock\InheritedProperty;
//ООП ElementTemplates или SectionTemplates или IblockTemplates ))
$ipropTemplates = new InheritedProperty\ElementTemplates($IBLOCK_ID, $ELEMENT_ID);
//Установить шаблон для элемента
$ipropTemplates->set(array(
"MY_PROP_CODE" => "{=this.Name}",
"SOME_CODE" => "", //Удалить шаблон
));
//Получить шаблоны для "редактирования"
$templates = $ipropTemplates->findTemplates();
//Удалить все собственные шаблоны элемента
$ipropTemplates->delete();
//ООП ElementValues или SectionValues или IblockValues ))
$ipropValues = new InheritedProperty\ElementValues($IBLOCK_ID, $ELEMENT_ID);
//Получить значения
$values = $ipropValues->getValues();
echo $values ["MY_PROP_CODE"];
//Сбросить кеш
$ipropValues->clearValues();
Генерация по шаблону
use Bitrix\Iblock\Template;
//Подключение модуля инфоблоков.
if (\Bitrix\Main\Loader::includeModule('iblock'))
{
//Задаём шаблон.
$template = "Name: {=this.Name}. Code:{=this.code}";
//Исходные данные будем брать из элемента.
$entity = new Template\Entity\Element($ELEMENT_ID);
//Не забываем про безопасность.
echo \Bitrix\Main\Text\String::htmlEncode(
//Вычисляем значение по шаблону.
Template\Engine::process($entity, $template)
);
}
Полезные шаблоны:
{=this.property.CML2_LINK.property.ONSTORE} - вывод в SEO-шаблоне элемента SKU значения свойства c кодом ONSTORE товара, к которому этот SKU привязан через свойство с кодом CML2_LINK.
mysqldump -h localhost -u USER -p'PASSWORD' DATABASE > /path/to/file/dump.sqlСоздаём бекап и сразу его архивируем
mysqldump -h localhost -u USER -p'PASSWORD' DATABASE | gzip > /path/to/outputfile.sql.gzЗаливаем бекап в базу данных
mysql -h localhost -u USER -p'PASSWORD' DATABASE < /path/to/dump.sqlЗаливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -h localhost -u USER -pPASSWORD DATABASEИли через mysql-console
mysql> use database; mysql> source database.sqlПрямой перенос данных из одной БД в другую
mysqldump -h SERVER1 -u USER1 -p'PASSWORD1' database1 | mysql -h SERVER2 -u USER2 -p'PASSWORD2' database2
zip -r file.zip folder_to_zipРаспаковка ZIP-архива
unzip filenname.zipСоздание tar.gz-архива директории
tar -cvzf filename.tar.gz folderРаспаковка tar.gz
tar -xzf rebol.tar.gzПрочие полезные bash-кейсы были разобраны в этом видео:
find /home/bitrix/ext_www/site.com/. -type f -print | xargs chmod 644 find /home/bitrix/ext_www/site.com/. -type d -print | xargs chmod 755
egrep -ir --include=*.{php,html,js} "(строка_для_поиска)" .
Bitrix\Main\Diag\Debug::writeToFile(array('ID' => $id, 'fields'=>$fields ),"","/debug.txt");
Bitrix\Main\Diag\Debug::dumpToFile(array('ID' => $id, 'fields'=>$fields ),"","/debug.txt");
Учет времени выполнения кода:Bitrix\Main\Diag\Debug::startTimeLabel('test');
// some code
Bitrix\Main\Diag\Debug::endTimeLabel('test');
$result = Bitrix\Main\Diag\Debug::getTimeLabels();
var_dump($result);
Получение текущей метки времени:Bitrix\Main\Diag\Helper::getCurrentMicrotime();Получение стэка вызова функций.
Bitrix\Main\Diag\Helper::getBackTrace($limit = 0, $options = null);SQL Tracker
$connection = \Bitrix\Main\Application::getInstance()->getConnectionPool()->getConnection(); $connection->startTracker($reset); // $reset - флаг перезапуска трэкера //some code with SQL //$query = $rs->getTrackerQuery()->getSql();// получаем SQL-запросы в строку $connection->stopTracker(); print_r($connection->getTracker());// вывод информации из трэкера, если нужно
$debug = new CDebugInfo(); $debug->Start(); // код $debug->Stop(); $arDebug['run_time'] = round($debug->arResult['TIME'], 4); $arDebug['sql_time'] = round($debug->arResult['QUERY_TIME'], 4); $arDebug['sql_count'] = $debug->arResult['QUERY_COUNT'];