在shell脚本中顺序执行命令并延迟执行下一个语句

时间:2016-04-13 09:57:30

标签: linux bash shell sh database-backups

我正在尝试编写一个脚本来进行数据库备份。备份脚本如下 -

$LOG_TIME=`date +%T`
$LOG=/home/developer/backup.log

echo $LOG_TIME "::Backup Started">>$LOG;
su - oracle -c "exp username/password file=~/db_exp.dmp log=db_exp.dmp";
echo $LOG_TIME "::Backup End">>$LOG;

我的代码正在完美地进行备份。但当我查看我找到的db_exp.dmp文件时 -

14:25:33 :: Backup Started  
14:25:33 :: Backup End

我的问题是这里两行“备份开始”和“备份结束”同时打印,同时花费几秒钟(约40~50)备份。我想打印备份完成时的实际时间。我尝试了几种方法 - 使用 && ;使用分号(;)和if语句,如 -

if backup_command; then 
   echo $LOG_TIME ":: Backup End";
fi

但没有任何对我有用。我不想在这里使用sleep,因为它没有给我完成db备份的实际时间。

1 个答案:

答案 0 :(得分:2)

试试这个

echo `date +%T` "::Backup End"