Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
tom.cat
- старшина
- Сообщения: 446
- Зарегистрирован: 2007-11-24 20:23:49
- Откуда: Мытищи
-
Контактная информация:
Непрочитанное сообщение
tom.cat » 2014-01-31 8:18:24
Всем привет.
На рутовую почту пришло сие сообщение от выполнения скрипта по бэкапу бд мускула.
/root/backup-mysql.sh: -u: not found
tar: Removing leading '/' from member names
Сам скрипт:
Код: Выделить всё
#!/bin/sh
MUSER="dbuser"
MPASS="dbpassword"
MHOST="localhost"
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
DEST="/root/dbbackup"
MBD="$DEST"
HOST="$(hostname)"
NOW="$(date +"%Y%m%d")"
# DO NOT BACKUP these databases, delemiter SPACE
IGN="information_schema mysql performance_schema"
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
skipdb=-1
if [ "$IGN" != "" ]; then
for i in $IGN
do
[ "$db" == "$i" ] && skipdb=1 || :
done
fi
if [ "$skipdb" == "-1" ] ; then
MBD="$DEST/$db"
[ ! -d $MBD ] && mkdir -p $MBD || :
FILE="$MBD/$NOW.tar.gz"
$MYSQLDUMP --opt -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
FNUM="$(find $MBD/* | wc -l)"
if [ $FNUM -ge 0 ] ; then
find $MBD/* -type f -mtime 20 -exec rm -rf {} \;
fi
fi
done
$TAR -cJf - $DEST | xz -9 -c - > backup-$NOW.tar.xz
END_SCRIPT
Проверял скрипт вручную, все делается без ошибок
When you see pigs fly it means Windows has become open source
tom.cat
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
Bayerische
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Непрочитанное сообщение
Bayerische » 2014-01-31 8:42:16
Вручную от того же юзера?
ENV для скрипта такой же, как в консоли?
Пути ко всем исполняемым файлам полные пропишите.
Bayerische
-
tom.cat
- старшина
- Сообщения: 446
- Зарегистрирован: 2007-11-24 20:23:49
- Откуда: Мытищи
-
Контактная информация:
Непрочитанное сообщение
tom.cat » 2014-02-02 14:02:04
Вручную от того же юзера?
Да, все проходит нормально. Правда shell у root'а - csh
ENV для скрипта такой же, как в консоли?
Вроде да.
Пути ко всем исполняемым файлам полные пропишите.
Указаны в скрипте. Или оболочка sh не понимает команду which?
When you see pigs fly it means Windows has become open source
tom.cat
-
rayder
- лейтенант
- Сообщения: 661
- Зарегистрирован: 2008-12-18 16:29:43
- Откуда: Ukraine/Kiev
-
Контактная информация:
Непрочитанное сообщение
rayder » 2014-02-03 16:31:01
говорит о том что скриптик-то у вас не знает что такое $MYSQL,
и соот-но это
Код: Выделить всё
BS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
выглядит как:
если уж "учите" скриптик самому находить пути, то вставляйте и проверки на тему нашел/нет.
+используйте ${MYSQL} вместо $MYSQL, в будущем оградит от ряда проблем.
Указаны в скрипте. Или оболочка sh не понимает команду which?
which ищет в $PATH, след-но mysql он там не нашел.
Человеку свойственно ошибаться, но для нечеловеческих ляпов нужен компьютер.
rayder
-
tom.cat
- старшина
- Сообщения: 446
- Зарегистрирован: 2007-11-24 20:23:49
- Откуда: Мытищи
-
Контактная информация:
Непрочитанное сообщение
tom.cat » 2014-02-04 11:53:20
Исправил на полные пути и заработало таки. Благодарю за помощь!
When you see pigs fly it means Windows has become open source
tom.cat