1 (26.07.2011 16:23:08 отредактировано GreenBanan)

 Консоль:

#!/bin/sh
BACKDATE=`date +%F`
HOST="178.238.140.32"
PORT="21"
USER="y"
PASSWD="x"
FILE="/home/nikon/script/backup-$BACKDATE.tar.gz"
LOG="/home/nikon/script/backup-$BACKDATE.log"
UFILE="/backups/backup-$BACKDATE.tar.gz"
tar cvvzf $FILE /etc >> $LOG
    ftp -dvin $HOST  >> $LOG <<EOF
      quote USER $USER
      quote PASS $PASSWD
      bin
      put $FILE $UFILE
      quit
    EOF 

Есть такой скрипт, вроде и вывод в файл поставил, но вот все равно в консоль проскакивают два сообщения

 Консоль:
tar: Удаляется начальный `/' из имен объектов
ftp: setsockopt: Bad file descriptor
как их записать в файл либо устранить, эти сообщения вообще не критичны?
И вопрос номер 2 после передачи по фтп требуется удалить архив с локальной машины, куда я не вставлял rm $FILE, не работает, как это реализовать?
Заранее спасибо.

2

GreenBanan пишет:

как их записать в файл либо устранить, эти сообщения вообще не критичны?

tar cvvzf $FILE /etc >> $LOG 2>/dev/null
ftp -dvin $HOST  >> $LOG 2>/dev/null <<EOF 

//fixed

но это не правильно. Правильно передавать tar'у относительный путь, а не полный.
ну к примеру так:

cd /
FILE="home/nikon/script/backup-$BACKDATE.tar.gz"

...

UFILE="backups/backup-$BACKDATE.tar.gz"
tar cvvzf $FILE etc >> $LOG 2>/dev/null

т.е. самому удалить слеш.

а вот что у вас там с сокетом - без понятия. Тут сами разбирайтесь, я ftp не юзаю, lftp лучше.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

3

drBatty, спасибо.

И вопрос номер 2 после передачи по фтп требуется удалить архив с локальной машины, куда я не вставлял rm $FILE, не работает, как это реализовать?
Заранее спасибо.

4

GreenBanan пишет:

И вопрос номер 2 после передачи по фтп требуется удалить архив с локальной машины, куда я не вставлял rm $FILE, не работает, как это реализовать?

FILE="/home/nikon/script/backup-$BACKDATE.tar.gz"
LOG="/home/nikon/script/backup-$BACKDATE.log"
UFILE="/backups/backup-$BACKDATE.tar.gz"

tar cvvzf $FILE /etc >> $LOG
err=$?
if [ $err = 0 ]; then
    # успешно упаковали
    ftp -dvin $HOST  >> $LOG <<EOF
      quote USER $USER
      quote PASS $PASSWD
      bin
      put $FILE $UFILE
      quit
    EOF
    err=$? # код ошибки FTP
fi
[ $err != 0 ] && exit $err # выход, если ошибка

rm --force "$FILE"

PS: Используйте кавычки!

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)