所以我有一个 shell 脚本,基本上可以将一台服务器备份到另一台服务器。在此过程中,我必须将一个非常大的目录(140GB)复制到另一个位置,在 shell 脚本中,我希望它在复制文件时从 0:00 开始运行实时秒表类型计数器。
可能的?
编辑:这是不是一个进度条的想法:)只是一个简单的秒表计时器,这样你就可以看到已经过去了多少时间,而不是直到疼痛结束的时间:)
答案1
会使用rsync -av --progress
而不是cp
做你想做的事吗?
答案2
以防万一 David Kings rsync 解决方案不适合您或者您确实想在 bash 中执行此操作(为什么),您可以这样做:
#!/bin/bash
your_command_to_execute &
myPid=$!
sleepTime=5
while kill -0 "$myPid" 2> /dev/null
do
# Sleep for the defined time
sleep $sleepTime
# And print the time since the script started in seconds
echo -en "Runtime $SECONDS\033[0K\r"
done
您可能想使用一些东西来更好地格式化时间。
目前,脚本还打印自脚本启动以来的秒数,而不是自 cp 操作启动以来的秒数(如果您想更改此简单操作,则从当前值中减去循环之前的秒数$SECONDS
)