- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть простенька уведомлялка об изменении файлов на сервере. Она пишет в лог путь до файлов которые были изменены. Но пишет все в одну кучу, не удобно смотреть.
как изменить этот код чтобы каждая запись была с новой строки?
exec("find /var/www -iname '*php' -cmin -10 -not -path '*/cache/*' > /var/www/check.log");\n в начале или конце строки ставить пробовали?
Так?
exec("find /var/www -iname '*php' -cmin -10 -not -path '*/cache/*' > /var/www/check.log\n");Dram, нет, в конце строки, которую вы пишете в /var/www/check.log.
А вообще, вроде бы, через find имена файлов должны по умолчанию с новой строки писаться. Может вы не тем редактором смотрите? Например, виндовый редактор не видит никсовые endline.
Вот весь код, уведомление мне приходит на мыло. И именно в нем (в gmail) я и смотрю) и там строки все в кучу, разделены только пробелом.
// No direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.application.component.model');
class CronModelCheck extends JModelLegacy
{
function __construct()
{
parent::__construct();
$this->save();
}
/*
*
*/
function save()
{
jimport('joomla.mail.mail');
exec("find /var/www -iname '*php' -cmin -10 -not -path '*/cache/*' > /var/www/check.log");
$content = file_get_contents("/var/www/check.log");
if(!empty($content))
{
$config = JFactory::getConfig();
$mailer = JFactory::getMailer();
$mailer->setSender(array(
$config->get('mailfrom'),
$config->get('fromname')
));
$mailer->addRecipient($config->get('mailfrom'));
$mailer->setSubject("Suspect Notifier Alert!");
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setBody($content);
$mailer->Send();
}
}
}
В хтмльном письме вы переносы строк (\n) не увидите.
Замените их на '<br>' или отправляйте письмо простым текстом.
Dram, в таком случае, можете показать скриншот письма? Для более полного понимания, как эту задачу можно решить:)
;15396135']В хтмльном письме вы переносы строк (\n) не увидите.
Замените их на '<br>' или отправляйте письмо простым текстом.
Об этом и спрашиваю - где добавить <br> ?
Dram, вы видите, что написано в письме на скриншоте? Я - нет. Я попросил вас его скинуть, чтобы понять как у вас формируются логи и куда можно вставить <br> в вашей команде.
Еще можно попробовать вставить <br> перед формированием письма регулярками, если сложность с добавлением тега в bash.
---------- Добавлено 20.12.2017 в 14:26 ----------
И, видимо, вариант с регулярками более правильный, поскольку html-теги в логфайле быть не должны.
В письме на скриншоте полный путь до файла который был изменен. Но каждый новый путь не с новой строки а через пробел. Это не удобно читать.
Попробуйте такой вариант:
$content = file_get_contents("/var/www/check.log");
$content = nl2br($content);