LinuxForum.Fans
Тема

Маленький скрипт резервного копирования на bash

Автор: denis32 5 сообщений 2584 просмотров
#219635
text
#!/bin/bash
BACKUP=/root/.backups
 ### FTP ###
FTPD="/home/vmsuser/.backup/vm3"
HOST=""
PORT="22"
USER=""
PASS=""
 TAR="$(which tar)"
expect="/usr/bin/expect"
 NOW=$(date +%Y-%m-%d)

$TAR -czf $BACKUP/etc-$NOW.tar.gz /etc sleep 5 #echo "----------------------------" echo "copy etc ok" $TAR -czf $BACKUP/www-$NOW.tar.gz /home/www sleep 5 echo "copy www ok"

sleep 10 mkdir $BACKUP/$NOW/ ARCHIVE=$BACKUP/$NOW/server-$NOW.tar.gz ARCHIVED="$BACKUP/*-$NOW.tar.gz"

$TAR -czf $ARCHIVE $ARCHIVED DUMPFILE=server-$NOW.tar.gz

$expect -c "spawn scp -oport=$PORT -2 -r $BACKUP/$NOW/$DUMPFILE $USER@$HOST:$FTPD/$DUMPFILE expect \"password:\" send \"$PASS\r\" interact " rm -r $ARCHIVE rm -r $ARCHIVED rm -r $BACKUP/$NOW

Проблема заклюается в следующем, если скрипт запускается из cron, не выходит авторизация на стороннем сервере. Попробовав добавить в cron

text
MAILTO="***@yandex.ru"

Получил примерно следующие:

text
/bin/tar: Удаляется начальный `/' из имен объектов
copy etc ok
/bin/tar: Удаляется начальный `/' из имен объектов
copy www ok
/bin/tar: Удаляется начальный `/' из имен объектов
spawn scp -oport=22 -2 -r /root/.backups/2012-01-08/server-2012-01-08.tar.gz vmsuser@server:/home/vmsuser/.backup/vm3/server-2012-01-08.tar.gz
ATTENTION! All connections are was adequately logged!
vmsuser@server 's password: 

Получается оно не может отправить пасс. В чём тут проблема может быть?
Если просто вызвать скрипт из консоли - всё нормально.

#219638

а не проще на сервере настроить авторизацию по ключу и не марать себе мозг с expect'ом?

ЗЫ: у user/host итп ведь не пустые?

#219639

Не пустые конечно.

#219647

denis32,

1. не надо мучиться, надо действительно прописать вход на сервер по ключу. Что вам в этом не нравится?
2. хотите секса? вот, здесь рабочий пример.

#219875

ясно. Спасибо.

Войдите или зарегистрируйтесь, чтобы ответить.