Если это - постоянное число объектов в массиве, можно использовать -A
(строки после переключателя) с grep:
grep -A4 'key1' myfile
-A NUM, --after-context=NUM
Print NUM lines of trailing context after matching lines.
Places a line containing a group separator (--) between
contiguous groups of matches. With the -o or --only-matching
option, this has no effect and a warning is given.
Существует также -B
поскольку перед строками также.
Зависит от размера вашего магазина. Если это необходимо, вы можете исправить apache, чтобы это было, и, возможно, попытаетесь добавить его вверх по течению. Храните исправленный apache в локальном репозитории и распространяйте его на локальные серверы.
Вы также можете изменить сценарии запуска apache, чтобы проверить конфигурацию и извлечь имена файлов с ключами SSL и проверить их права доступа.
] 3-й вариант - создать сценарий systemtap, который проверяет, когда apache пытается открыть ключи, регистрирует ошибку и убивает apache.
4-й вариант - использовать inotify и проверять, когда ключи читаются, проверять, открываются ли они демоном apache , зарегистрируйте ошибку, затем закройте apache.
Может быть проще просто развернуть задание cron следующим образом:
1 * * * * chown -R root:root /etc/apache/keys; chmod -R 400 /etc/apache/keys/*
Apache всегда запускается без ошибок (если только вы не просто изменили права доступа к файлам SSL ), и даже если кто-то изменит разрешения во время работы Apache, они будут изменены обратно в течение часа. Это задание достаточно малоэффективно, и вы даже можете запускать его каждую минуту в производственной системе без каких-либо проблем.
Если вы развертываете свои ключи SSL с помощью Puppet (или аналогичного), вы также можете настроить Puppet для обеспечения прав владения и разрешений для эти файлы. Конечно, тогда вам придется иметь дело с ключами, хранящимися в Puppet.