Сохранение файлов журнала httpd на S3 при завершении работы с помощью s3cmd

У меня есть группа автоматического масштабирования в Amazon Web Services (AWS). Я хочу сохранить файлы журналов в экземпляре (Amazon Linux AMI), когда группа сокращается. Моя текущая идея - использовать инструмент s3cmd в скрипте, который запускается при перезагрузке или завершении работы экземпляра. Сценарий (sendlogtos3, в каталоге /etc/init.d) отлично работает из командной строки. Он также выполняется при перезагрузке / завершении работы (регистрирует свое сообщение в файле /var/log/messages), но критическая часть, команда s3cmd, не выполняется. Выходные данные s3cmd не отправляются в файл сообщений при перезагрузке, но это происходит при запуске из командной строки.

Это скрипт:

#!/bin/bash
PATH=$PATH:/usr/sbin:/opt/aws/bin

start(){
touch /var/lock/subsys/0sendlogtos3
}


stop() {

S3_BUCKET=<<bucket_name>>
EC2_INSTANCE_STRING="`ec2-metadata -i`"
LOG_FILE_LOCATION=/var/log/httpd/

s3_dest=s3://$S3_BUCKET/${EC2_INSTANCE_STRING:13}/
s3cmd --config /root/.s3cfg put -r $LOG_FILE_LOCATION  $s3_dest >> /var/log/messages  2>&1
wait
echo "`date`" - sendlogtos3 executed >> /var/log/messages
rm -f /var/lock/subsys/0sendlogtos3
}

case "$1" in
start)
start
;;
stop)
stop
;;
esac

########END#######

Файл связан (символически) в папках rc0.d и rc6.d как K000sendlogtos3, а в папке rc3.d как S99sendlogtos3. Права доступа к сценарию выглядят правильно (rwxr-xr-x). Я попытался явно указать местоположение файла конфигурации и перейти по символическим ссылкам, но ни один из них не имел никакого эффекта.

Я не могу понять, почему s3cmd не работает. У кого-нибудь есть какие-либо идеи? Или как выяснить проблему?

1 ответ

Решение

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

Попробуйте настроить s3cmd часть в вашем скрипте, чтобы использовать его полный путь. Я не уверен, как вы установили s3cmd (либо через yum, либо вручную), но вы можете узнать его полный путь, запустив which s3cmd,

Другие вопросы по тегам