2012-01-19 1 views
1

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

Мне нужно отправить файлы в мэйнфрейм с помощью 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 

Логика прекрасно работает file1 т.е. если file1 результаты передачи по ошибке, не передавать file2.

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

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

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

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

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

ответ

1

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

cheers, mitch