В настоящее время у меня есть скрипт, который отслеживает наш журнал ошибок и отправляет журналы на наш слабый канал. Как я могу заставить его отправлять всю ошибку, а не построчно. Это то, что у меня есть в настоящее время, и одна ошибка отправляется сотнями однострочных сообщений.
#!/bin/bash
tail -f "$1" | while read LINE; do
(echo "$LINE") && curl -X POST --silent --data-urlencode \
"payload={\"text\": \"\`\`\`$1 $(echo $LINE | sed "s/\"/'/g")\`\`\`\"}" "$2";
done
Есть ли способ получить bash для этого?
Вот как это выглядит в расслабленном состоянии:
```/var/log/php_error_log Stack trace:```
```/var/log/php_error_log #0 /opt/library/Zend/Mail/Protocol/Smtp.php(167): Zend_Mail_Protocol_Abstract->_connect('tcp://mail...')```
```/var/log/php_error_log #1 /opt/library/Zend/Mail/Transport/Smtp.php(199): Zend_Mail_Protocol_Smtp->connect()```
```/var/log/php_error_log #2 /opt/library/Zend/Mail/Transport/Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail()```
```/var/log/php_error_log #3 /opt/library/Zend/Mail.php(1197): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail))```
```/var/log/php_error_log #4 /opt//cronjobs/automate_ro.php(472): Zend_Mail->send(Object(Zend_Mail_Transport_Smtp))```
```/var/log/php_error_log #5 {main}```
Вот как это должно быть отформатировано
```/var/log/php_error_log Stack trace:
/var/log/php_error_log #0 /opt/library/Zend/Mail/Protocol/Smtp.php(167): Zend_Mail_Protocol_Abstract->_connect('tcp://mail.grat...')
/var/log/php_error_log #1 /opt/library/Zend/Mail/Transport/Smtp.php(199): Zend_Mail_Protocol_Smtp->connect()
/var/log/php_error_log #2 /opt/library/Zend/Mail/Transport/Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail()
/var/log/php_error_log #3 /opt/library/Zend/Mail.php(1197): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail))
/var/log/php_error_log #4 /opt//cronjobs/automate_ro.php(472): Zend_Mail->send(Object(Zend_Mail_Transport_Smtp))
/var/log/php_error_log #5 {main}```