Bash脚本不同步运行

时间:2011-10-31 18:06:14

标签: linux bash

所以我有一个脚本试图在服务器上创建一个sql文件,然后拉下该文件。我遇到了在写入文件之前执行GZip调用的问题。奇怪的是,当我在我的VM实例上运行它时,它完全没问题。但是当我在其中一台服务器上测试它时,只会失败。

 echo "Backing up $DB..."
 $PROG_MYSQLDUMP -u $USERNAME -p${PASSWORD} -h $HOST $DB $IGNORES > ${DEST_FILE}

 echo "Zipping file...${DEST_FILE}"
 $PROG_GZIP $DEST_FILE

我唯一的想法就是在进行GZip调用之前添加一个检查来检查文件,然后只是在X检查失败后继续检查。我不喜欢这个解决方案。是否有一些我想让脚本独自等待的东西?

感谢。

2 个答案:

答案 0 :(得分:4)

在编写转储之前,gzip程序无法启动。无论如何,为什么不用gzip来管理转储?这应该节省时间和临时磁盘空间。此外,它还可以减少磁盘上的负载。

$PROG_MYSQLDUMP -u $USERNAME -p${PASSWORD} -h $HOST $DB $IGNORES |
$PROG_GZIP > $DEST_FILE.gz

答案 1 :(得分:4)

还是管道? Evades临时文件。

$PROG_MYSQLDUMP -u $USERNAME -p${PASSWORD} -h $HOST $DB $IGNORES | $PROG_GZIP >  ${DEST_FILE}