Журналы для WP CLI

Вопрос или проблема

Журналы для WP CLI

Я запускаю скрипт WP CLI для регенерации изображений,
seq 192000 194000 | xargs wp media regenerate —only-missing

и получил ошибки, например:
Warning: Не удается найти “margot-fox-pope-francis-post” (ID 204823).

Есть ли способ сохранить логи, чтобы я мог увидеть, какой медиафайл не был сгенерирован?

Я попробовал эту команду ssh

seq 192000 194000 | xargs wp media regenerate —only-missing | tee -a /home/site/public_html/export.txt

но эта команда сохраняет только успешные ID, мне нужно записывать неудачные ID
у вас есть какие-либо советы?

Когда вы готовы начать запись файла лога, введите:

script screen.log

Теперь, до тех пор, пока вы не остановите скрипт, все вводимые и выводимые данные в терминале будут сохранены в screen.log. Когда закончите, просто введите:

exit

Источник: Ubuntu Guide – Как записывать команды терминала

Ответ или решение

Чтобы сохранить логи выполнения команды WP CLI и получить информацию о том, какие медиафайлы не были сгенерированы, вы можете воспользоваться несколькими подходами. Ниже описаны два эффективных метода для достижения этой цели.

1. Использование tee с фильтрацией ошибок

Вы можете использовать конструкцию с перенаправлением ошибок, чтобы сохранить как стандартный вывод, так и вывод ошибок в один лог-файл. Вот пример команды, которая решит вашу задачу:

seq 192000 194000 | xargs wp media regenerate --only-missing 2>&1 | tee -a /home/site/public_html/export.txt

Объяснение команды:

  • seq 192000 194000: генерирует последовательные номера от 192000 до 194000.
  • xargs wp media regenerate --only-missing: передает эти номера в команду WP CLI для регенерации медиафайлов.
  • 2>&1: перенаправляет стандартный поток ошибок (stderr) в стандартный поток вывода (stdout).
  • tee -a /home/site/public_html/export.txt: записывает весь вывод (как успешные, так и ошибочные сообщения) в файл export.txt.

2. Использование script для полного логирования сессии

Другим подходом является использование команды script, которая записывает весь ввод и вывод в файл. Этот метод полезен, если вы хотите сохранить полное взаимодействие с терминалом:

script /home/site/public_html/sessions.log

После выполнения этой команды все вводимые данные и вывод будут записываться в файл sessions.log до тех пор, пока вы не завершите сессию, введя команду exit.

После этого выполните вашу команду WP CLI:

seq 192000 194000 | xargs wp media regenerate --only-missing

Когда закончите, просто введите exit для завершения записи.

Вывод

Обе стратегии позволяют сохранять данные о том, какие медиафайлы не были сгенерированы. Первый способ более удобен для записи и анализа конкретной команды, в то время как второй способ позволяет сохранить всю сессию терминала. Выберите тот метод, который лучше всего соответствует вашим потребностям.

Оцените материал
Добавить комментарий

Капча загружается...