Сценарий инициализации LSB не выполнен
234
marekful
Я создал LSB-совместимый сценарий инициализации, который я собираюсь использовать для загрузки некоторых файлов журнала в корзину Amazon S3, когда система выходит из строя, но она не выполняется.
Вот содержимое скрипта в файле /etc/init.d/push-apache-logs-to-s3.sh
(я заменил имя клиента на XXX):
#! /bin/sh ### BEGIN INIT INFO # Provides: push-apache-logs-to-s3 # Required-Start: # Required-Stop: $local_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Push Apache log files to S3 # Description: ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/lsb/init-functions do_stop () { LOG_DIR=/var/log/apache2/ BACKUP_DEST=s3://XXX-backups/api-logs EC2_ID=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` echo -n "Entering log directory..." if cd $LOG_DIR then echo "OK" else echo echo "Cannot change directory... BACKUP ABORTED!" echo exit 3 fi echo -n "Pushing log files to S3..." # push log files if s3cmd put XXX-api_access.log* $BACKUP_DEST/$EC2_ID/ >/dev/null then echo "OK" else echo echo "LOG FILES COULD NOT BE MOVED TO S3! BAKCUP NOT COMPLETE!" echo exit 5 fi echo "*** Backup finished at " `date` echo "-----------------------------------------------" exit 0 } case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac :
Вот команда, которую я использовал для ее установки:
sudo update-rc.d push-apache-logs-to-s3.sh start 01 2 3 4 5 . stop 01 0 1 6 .
который обеспечил вывод:
Adding system startup for /etc/init.d/push-apache-logs-to-s3.sh ... /etc/rc0.d/K01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc1.d/K01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc6.d/K01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc2.d/S01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc3.d/S01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc4.d/S01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh /etc/rc5.d/S01push-apache-logs-to-s3.sh -> ../init.d/push-apache-logs-to-s3.sh
Скрипт использует s3cmd
который установлен и настроен в системе. s3cmd
в /usr/bin/
котором определяется как PATH
в скрипте.
Когда я выполняю скрипт sudo ./push-apache-logs-to-s3.sh stop
, он выполняет свою работу.
Любые предложения, что не так?
Пожалуйста, не перепечатывайте, это по сути [тот же вопрос] (http://superuser.com/q/617916/151431). Добавьте новую информацию к исходному вопросу, пожалуйста, я обновлю свой [ответ] (http://superuser.com/a/617931/151431) там, в чем (я думаю) ваша проблема здесь.
terdon 11 лет назад
0
Вы можете попытаться перенаправить весь ваш вывод в файл журнала и посмотреть, будет ли что-нибудь записано. Это даст вам лучшее понимание того, где оно терпит неудачу.
GnP 11 лет назад
1
@terdon Я создал новый пост, потому что ситуация полностью изменилась. Теперь у меня есть скрипт LSB, а когда опубликовано пред. вопрос у меня только что был скрипт "pure bash".
marekful 11 лет назад
0
Кроме того, ни один из ответов на другой пост не приблизил меня к решению.
marekful 11 лет назад
0
Я знаю, что обычно лучше не добавлять лишние вопросы. Смотрите мой обновленный ответ на ваш оригинальный вопрос, это помогает?
terdon 11 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
8
Ожидание ноутбука в Linux / Ubuntu
-
1
Как я могу получить доступ к принтеру Windows Vista из Ubuntu по сети?
-
-
3
Могу ли я запустить Microsoft Office 2007 под Ubuntu?
-
6
Virtualbox, VMware, KVM или другое для виртуализации Ubuntu?
-
4
Функция Windows 7 «Aero Snap» в Ubuntu GNOME
-
5
ПО для управления iPod для Linux
-
1
Возвращаясь из Dual-boot к просто Windows
-
2
Firefox печать в PDF-файл
-
5
Как получить максимальное разрешение на Ubuntu в Microsoft Virtual PC?