Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: нет перевода строки в выводе крона  (Прочитано 995 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jura12

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1418
  • 20.04
    • Просмотр профиля
запускаю скрипт от пользователя через cron, скрипте надо запускать grep, а оказывается вместо перевода строки вставлен пробел. как заставить делать вывод скрипта в кроне как обычно в bash?
примеры в приложенных файлах.
« Последнее редактирование: 08 Января 2021, 12:50:25 от jura12 »
сопротивление бесполезно

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #1 : 08 Января 2021, 19:19:34 »
строка крон?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн jura12

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1418
  • 20.04
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #2 : 08 Января 2021, 19:41:51 »
строка крон
@daily . $HOME/.profile; /home/username/.etc/checkandupdate.sh
через crontab -e внес скрипт который срабатывает раз в сутки.
внутри вывод информации из php скрипта и обработка его через grep.
но греп неправильно отрабатывает я думаю потомучто вывод от php получается без перевода строки.
если запустить скрипт руками в интерактивном окружении то скрипт отрабатывает нормально. я думал это потому что разные переменные окружения. но вероятнее всего скрипт надо будет переписывать на использование sed вместо grep.
вот часть скрипта #!/usr/bin/env bash
dirtocreate="jura12ru"

export LANG=ru_RU.UTF-8
cd /var/www/$dirtocreate

#check update
STR=$(vendor/bin/drush core:requirements | grep "Состояние обновления для модулей и тем")
echo $(vendor/bin/drush core:requirements)>~/txt.txt
SUB='Требуется обновление'
if grep -q "$SUB" <<< "$STR"; then
  echo "Требуется обновление модулей и тем"
 /var/www/$dirtocreate/updatemodules.sh
else
  echo "Обновления модулей нет"
fi
« Последнее редактирование: 08 Января 2021, 19:44:24 от jura12 »
сопротивление бесполезно

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #3 : 08 Января 2021, 19:52:48 »
echo $(vendor/bin/drush core:requirements)>~/txt.txt
Это echo cъедает переносы.
(Нажмите, чтобы показать/скрыть)

vendor/bin/drush core:requirements > ~/txt.txt
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн jura12

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1418
  • 20.04
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #4 : 08 Января 2021, 20:10:11 »
спасибо за наводку. тогда и операция вычленения строки не работает.
чтото раньше работало. буду смотреть.
сопротивление бесполезно

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #5 : 08 Января 2021, 20:21:02 »
если закавычить, должно работать.
$: echo "$(cat test.txt)"
1
2
3

Только всё равно непонятно, зачем нужно echo
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #6 : 08 Января 2021, 21:33:47 »
Я не смотрел текст скрипта, но, если есть подозрения на echo, то используйте /bin/echo, она будет работать, как скажете.
Пётр.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #7 : 08 Января 2021, 21:56:43 »
Peter_I, аналогично
(Нажмите, чтобы показать/скрыть)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #8 : 13 Января 2021, 00:44:03 »
Почему у вас русский в скрипте вообще?

[ -x vendor/bin/drush ] || exit 2
LC_ALL=C vendor/bin/drush core:requirements > "$HOME/drush-core-requirements.txt"
if grep -q "$SUB" "$HOME/drush-core-requirements.txt"; then
  echo "Требуется обновление модулей и тем"
  /var/www/$dirtocreate/updatemodules.sh
else
  echo "Обновления модулей нет"
fi
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн jura12

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1418
  • 20.04
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #9 : 13 Января 2021, 01:49:01 »
файловых операций лучше избежать. сохранял в файл для понимания что происходит, почему не отрабатывает. я уже намучался с этим скриптом. один раз отработало правильно. буду ждать второго раза для выставления товарищам. это ничто иное как автоматическое обновление cms drupal 8,9 . последняя версия такая:
#!/bin/bash
dirtocreate="korobkipro/mykorobkipro"

#backup
/home/username/.etc/backup5.sh

export LANG=ru_RU.UTF-8
cd /var/www/$dirtocreate

STR=$(vendor/bin/drush core:requirements)
#echo $STR>~/txt.txt
SUB='Требуется обновление'
if grep -q "$SUB" <<< "$STR"; then
  echo $SUB
 /var/www/$dirtocreate/updatemodules.sh
else
  echo "Обновлений  нет"
fi

P.S. русский язык нужен потомучто поиск на русском языке.
« Последнее редактирование: 13 Января 2021, 16:50:05 от jura12 »
сопротивление бесполезно

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #10 : 14 Января 2021, 11:47:21 »
Я показал, как переключить на английский.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн jura12

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1418
  • 20.04
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #11 : 14 Января 2021, 13:04:06 »
да там не все переключается. drush это командная обертка к фреймворку на котором язык уже задан. вывод вашей команды все равно на русском.
LC_ALL=C vendor/bin/drush core:requirements > "$HOME/drush-core-requirements.txt"
(Нажмите, чтобы показать/скрыть)
сопротивление бесполезно

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: нет перевода строки в выводе крона
« Ответ #12 : 14 Января 2021, 17:13:18 »
Убого. Жалко.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.039 секунд. Запросов: 25.