使用 SCP 或不使用任何文件从 unix 向大型机发送两个文件的逻辑
我在 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。
但如果文件 1 传输成功,则会启动文件 2 传输。如果失败,则 file1 已在 MF 中。
我不想那样。我想发送两个文件,或者都不发送。
如何实现这一目标?
我知道最后一个选项是如果文件 2 传输失败,则删除 MF 中的文件 1。但还有其他办法吗?
感谢您的阅读!
I have two source files created in unix folder say file1.dat and file2.dat.
I need to send the files to mainframe using SCP.
The unix script I wrote is as below:
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
The logic works fine for file1 i.e. if file1 transfer results in error, do not transfer file2.
But if file1 transfer succeeds, file2 transfer gets initiated. If that fails, file1 is already in MF.
I dont want that. I want to send either both the files or none of them.
How to achieve that ?
I know last option is to delete file1 in MF if file2 transfer fails. But is there any other way ?
Thanks for reading!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我要做的是将文件传输到最终文件所在的同一文件系统上的临时位置(或使用远程服务不会拾取的临时名称),如果两次传输都成功,则重命名文件。如果您确保文件名可用,则在同一文件系统上重命名永远不会失败。
干杯,
米奇
What I would do is transfer the files to a temporary location on the same filesystem where the final files should be (or with a temporary name that won't be picked up by the remote service), and rename the files if both transfers were successful. The rename should never fail on the same filesystem if you make sure the filenames are available.
cheers,
mitch