Использование jq в искаженном файле json

Если apache/httpd работал до установки нового SSL,Я настоятельно рекомендую вам просмотреть синтаксис вашей конфигурации, используя

httpd -t

Каждый раз, когда вы редактируете конфигурацию apache/httpd, вы должны убедиться, что синтаксис правильный, иначе при перезапуске служба apache/httpd не восстановится. Вот пример работающей настройки SSL.

<VirtualHost *:443>

DocumentRoot "/var/www/jesus"
ServerName jare.site
ServerAlias www.jare.site

ReWriteEngine on

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/letsencrypt/live/www.jare.site/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.jare.site/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.jare.site/fullchain.pem

</VirtualHost>

Теперь я отредактировал файл SSLCertifacateFile /etc/letsencrypt/live/www.jare.site/cert.pe, удалив «m» в конце, и, как вы можете видеть, это привело к тому, что apache/httpd не пришел резервный.

<VirtualHost *:443>

DocumentRoot "/var/www/jesus"
ServerName jare.site
ServerAlias www.jare.site
#AllowOverride All
#Require all granted
ReWriteEngine on
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/letsencrypt/live/www.jare.site/cert.pe <---
SSLCertificateKeyFile /etc/letsencrypt/live/www.jare.site/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.jare.site/fullchain.pem

</VirtualHost>

Тестирование синтаксиса httpd.

$ httpd -t
AH00526: Syntax error on line 25 of /etc/httpd/conf.d/jesus.conf:
SSLCertificateFile: file '/etc/letsencrypt/live/www.jare.site/cert.pe' does not exist 
or is empty

httpd/apache отказывается запускаться

$ service httpd restart
Redirecting to /bin/systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See 
"systemctl status httpd.service" and "journalctl -xe" for details.
0
06.11.2020, 13:40
1 ответ

Как говорит пользователь thanasisp в комментариях , этот документ, скорее всего, является результатом запроса MongoDB, и проблема будет лучше решена путем правильного преобразования его в JSON с использованием ядра базы данных.

Однако утилита yqизhttps://kislyuk.github.io/yq/(синтаксического анализатора YAML, обернутая вокруг jq), способна (своего рода )анализировать документ как есть, как если бы он был YAML.

$ yq -r '[.name,.username,.contact_info.email] | @csv' file
"joe bam","joe_bam","N/a@mail.com"

Я говорю "своего рода", потому что этот беспорядок - это то, что вы получите, если пропустите его через фильтр идентификации:

$ yq. file
{
  "_id": "ObjectId('58049da30b78a4a11e3c9869')",
  "name": "joe bam",
  "username": "joe_bam",
  "contact_info": {
    "email": "N/a@mail.com"
  },
  "color": "Blue",
  "updated_at": "datetime.datetime(2017",
  "5": null,
  "18": null,
  "11": null,
  "16": null,
  "19": null,
  "737000)": null,
  "created_at": "datetime.datetime(2016",
  "10": null,
  "17": null,
  "9": null,
  "45": null,
  "7": null,
  "226000)": null,
  "token": "$2y$10$VMgv1S/NiGzkPsGhc4S.6eGFvEXv5YenlWQNdqUbVy4aGaeKOyxpi",
  "views": 29,
  "status_logged": true,
  "provider": "signup"
}
0
30.04.2021, 15:39

Теги

Похожие вопросы