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'];