логика для отправки двух файлов из unix в мэйнфрейм, используя SCP или ни один из них - PullRequest
1 голос
/ 19 января 2012

У меня есть два исходных файла, созданных в папке unix, например file1.dat и file2.dat.

Мне нужно отправить файлы на мэйнфрейм с помощью SCP.

Написанный мною сценарий unixкак показано ниже:

if [[ -f $MY_DIR/$SOURCE1 ] -a [ -f $MY_DIR/$SOURCE2 ]]; then

       scp -P 2222 $MY_DIR/$SOURCE1 $MFDESTINATION1
       if [ $? -ne 0 ]; then
           ftp_status='100'
           $LOG_DIR/my_log $0 "(SCP FOR $SOURCE1) ended in ERROR"
           exit 255

       else         
          scp -P 2222 $MY_DIR/$SOURCE2 $MFDESTINATION2
          if [ $? -ne 0 ]; then
            ftp_status='100'
            $LOG_DIR/my_log $0 "(SCP FOR $SOURCE2) ended in ERROR"
            exit 255
          fi
      fi
fi

Логика отлично работает для файла1, т. е. если передача файла1 приводит к ошибке, не следует передавать файл2.

Но если передача файла1 успешна, начинается передача файла2.Если это не удается, file1 уже находится в MF.

Я не хочу этого.Я хочу отправить либо оба файла, либо ни один из них.

Как этого добиться?

Я знаю, последний вариант - удалить файл1 в MF, если передача файла2 не удалась.Но есть ли другой способ?

Спасибо за чтение!

1 Ответ

1 голос
/ 19 января 2012

Что я хотел бы сделать, это перенести файлы во временное место в той же файловой системе, где должны быть окончательные файлы (или с временным именем, которое не будет выбрано удаленной службой), и переименовать файлы, если обапереводы были успешными.Переименование никогда не должно произойти в той же файловой системе, если вы уверены, что имена файлов доступны.

cheers, mitch

...