我想使用 shell 脚本 tar 四个包含大量小文件的目录。由于这个脚本执行时间太长,所以我想使用 shell 脚本使这 4 个 tar 命令并行运行,希望我可以更好地利用可用资源。
我目前使用的命令:
tar cf - /ebs/uat/uatappl | gzip -c > /ebs/backup/uatappl.tar.gz
tar cf - /ebs/uat/uatcomn | gzip -c > /ebs/backup/uatcomn.tar.gz
tar cf - /ebs/uat/uatora | gzip -c > /ebs/backup/uatora.tar.gz
tar cf - /ebs/uat/uatdata | gzip -c > /ebs/backup/uatdata.tar.gz
Run Code Online (Sandbox Code Playgroud)
您可以像这样将所有焦油放在背景中:
tar cf - /ebs/uat/uatappl | gzip -c > /ebs/backup/uatappl.tar.gz &
tar cf - /ebs/uat/uatcomn | gzip -c > /ebs/backup/uatcomn.tar.gz &
tar cf - /ebs/uat/uatora | gzip -c > /ebs/backup/uatora.tar.gz &
tar cf - /ebs/uat/uatdata | gzip -c > /ebs/backup/uatdata.tar.gz &
Run Code Online (Sandbox Code Playgroud)
但要注意你必须有足够的处理器能力和快速的磁盘,否则并发会使总执行时间比连续执行时间长