我遇到以下情况,需要:
- 在脚本 A 中做一些前言设置
- 同时启动脚本 B、C、D 和 E,以便它们同时运行
- 当所有四个脚本都退出后,在脚本 A 中做一些清理工作
目前,我已经在脚本 B - D 中运行了标志,设置脚本是否仍在运行,并且在启动这四个脚本后,脚本 A 处于等待循环中检查这些标志文件。
有一个更好的方法吗?
背景是,这是一个使用快照的 AIX 服务器备份脚本 - 脚本 A 在我们希望备份的文件系统上获取 JFS2 快照(它们都需要同时完成,因为我们有分布在不同文件系统上的相关数据 - 这无法更改),脚本 B - D 根据快照对这些文件系统进行实际备份(三次 rsync 到不同的服务器,以及一次磁带备份),然后脚本 A 在完成所有文件复制(包括复制到磁带)后删除快照。
答案1
使用 bash,您可以执行以下操作:
init # do the preamble setup of script A
scriptB & # start in background
scriptC & # start in background
scriptD & # start in background
wait # wait for all background jobs to finish
cleanup # do the cleanup part of script A