我在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。但还有其他方法吗?
感谢阅读!
答案 0 :(得分:1)
我要做的是将文件传输到最终文件所在的同一文件系统上的临时位置(或者使用远程服务无法获取的临时名称),并重命名文件转让成功。如果确保文件名可用,则重命名永远不会在同一文件系统上失败。
欢呼声, 米奇