我有以下脚本:
#!/bin/bash
PATH=...
echo 'Syncing database dumps'
rsync ssh user@XX.XXX.XXX.XX:/test/ /test
echo 'Creating symlink'
ln -s test /tmp/test
仅运行第一个命令和所有回声。如果我注释掉第一个命令,则运行symlink命令:
#!/bin/bash
PATH=...
echo 'Syncing database dumps'
#rsync ssh user@XX.XXX.XXX.XX:/test/ /test
echo 'Creating symlink'
ln -s /test /tmp/test
其余的不运行。有什么想法吗?
根据最近的评论编辑,将-v选项添加到symlink命令。现在我可以看到所有命令都运行了。但是它们不按照它们设置的顺序运行。在rsync命令完成之前,symlink命令将运行。如何设置顺序,以便只在rsync命令完成后运行symlink命令?
答案 0 :(得分:2)
尝试rsync的--blocking-io选项,即
rsync ssh --blocking-io user@XX.XXX.XXX.XX:/test/ /test
或者,如果你的协议是ssh,你可以使用scp
scp user@XX.XXX.XXX.XX:/test/ /test