使用SCP或不使用SCP将两个​​文件从unix发送到大型机的逻辑

时间:2012-01-19 07:55:27

标签: unix scripting scp

我在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

逻辑适用于file1,即如果file1传输导致错误,请不要传输file2。

但是如果file1传输成功,则启动file2传输。如果失败,则file1已经在MF中。

我不想那样。我想发送这两个文件或者都不发送。

如何实现?

我知道如果file2传输失败,最后一个选项是删除MF中的file1。但还有其他方法吗?

感谢阅读!

1 个答案:

答案 0 :(得分:1)

我要做的是将文件传输到最终文件所在的同一文件系统上的临时位置(或者使用远程服务无法获取的临时名称),并重命名文件转让成功。如果确保文件名可用,则重命名永远不会在同一文件系统上失败。

欢呼声, 米奇