Команды в сценарии оболочки выполняются последовательно. Если Ваша первая команда rsync
, следующая команда не выполнится до rsync
завершается.
То, в чем Вы хотите быть уверенными, является этим rsync
концы успешно прежде, чем продолжиться к следующей команде.
Это не самое изящное решение, но самое легкое для реализации.
rsync -e ssh -az user-whatever@website.com:/home /location/of/local/folder &&\
tar zcf /var/backups/home-`date +%Y%m%d`.tar.gz /location/of/local/folder
Следует иметь в виду, что это будет только работать если статус выхода rsync
0
. Любой другой статус выхода и команда 2 не будут работать.
AND and OR lists are sequences of one of more pipelines separated by the && and || control operators, respectively. AND and OR lists are executed with left associativity. An AND list has the form command1 && command2 command2 is executed if, and only if, command1 returns an exit status of zero.
Вы могли добавить больше аналитики к своему сценарию при выполнении различных действий на основе rsync
ЗНАЧЕНИЯ ВЫХОДА.
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
rsync -e ssh -az user-whatever@website.com:/home /location/of/local/folder
if [ $? != "0" ]
then
echo "There was a problem"
else
tar zcf /var/backups/home-`date +%Y%m%d`.tar.gz /location/of/local/folder
fi
Дамп ядра сгенерирован, когда программа перестала работать с неожиданными результатами. Вышеупомянутое говорит Вам отказавшую команду и копия программы, которая была в памяти, обработал abrt демоном (команда /usr/libexec/abrt-hook-ccpp
). Можно затем использовать инструменты такой как gdb
отлаживать отказ.Примечание: gdb не для малодушного!
Довольно часто это результат плохо написанного кода (он должен обработать исключения немного лучше), из проблем памяти, или базовые проблемы, такие как команда были связаны с определенной библиотекой динамической нагрузки, которая была теперь изменена, и программа катастрофического отказа больше не может использовать его в способе, которым он ожидает.
От этой страницы существуют детали о том, что процесс Abrt, и как это обрабатывает ядра.
Когда “abrtd” работает, значение sysctl переменного “ядра core_pattern” отличается от вышеупомянутого как показано ниже:
$sysctl-a|grep core_pattern ядро core_pattern = |/usr/libexec/abrt-hook-ccpp/var/cache/abrt %p %s %u %c
“abrtd” создает подкаталог (назвал что-то как “ccpp-1279914365-14618 ″) в каталоге “/var/cache/abrt” как показано в значении переменной. Это также означает, что базовые файлы будут также храниться в том подкаталоге в “/var/cache/abrt” каталоге (в дополнение к текущему каталогу, где приложение было запущено). Демон ABRT также создает другие файлы в дополнение к файлам дампа ядра в подкаталоге для дальнейшей помощи пользователям в отладке проблемы катастрофического отказа.
/usr/libexec/abrt-hook-ccpp
, но это было передано по каналу к этому исполняемому файлу - "Автоматический Инструмент создания отчетов Ошибки Redhat".abrt-cli list
может отобразить дополнительную информацию. – Martin von Wittich 17.09.2013, 23:30