加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

大文件或目录复制时的信息统计脚本

发布时间:2020-12-15 07:17:08 所属栏目:安全 来源:网络整理
导读:昨天在机房等待复制数据(332G)时,实在等待的无聊,就写了这么个东西;主要用于当开始一个复制操作时,如果量比较大,我们又必须等待其完成,每次通过du查看的数据,自己要算一下才知道大概有多久;这个很麻烦,于是想,这应该是个很简单的脚本; 先说操作前

昨天在机房等待复制数据(332G)时,实在等待的无聊,就写了这么个东西;主要用于当开始一个复制操作时,如果量比较大,我们又必须等待其完成,每次通过du查看的数据,自己要算一下才知道大概有多久;这个很麻烦,于是想,这应该是个很简单的脚本;

先说操作前提,首先得有正在复制的东东,文件或目录皆可,然后要给脚本一个间隔时间,脚本通过间隔时间来计算平均每秒复制速度,然后还要告诉脚本源文件和目标文件,当然目录也可以。

如下:

./script.sh 10 /nfs/openSUSE-11.2-DVD-x86_64.iso /opt/os/openSUSE-11.2-DVD-x86_64.iso Speed: 13.20MB/s; Done: 0.12GB; 121.00MB # 每秒平均速度,完成的GB多少,MB多少 Time: 5.45 sec; Have: 4.22GB; 4316.41MB # 预计还需要多少分钟,还有多少没复制,其大小是多少GB,MB

123 ./script.sh10/nfs/openSUSE-11.2-DVD-x86_64.iso/opt/os/openSUSE-11.2-DVD-x86_64.isoSpeed:13.20MB/s;Done:0.12GB;121.00MB#每秒平均速度,完成的GB多少,MB多少Time:5.45sec;Have:4.22GB;4316.41MB#预计还需要多少分钟,还有多少没复制,其大小是多少GB,MB

代码如下:

12345678910111213141516171819202122 #!/bin/bashDIR1=${2:-/var/log/}DIR2=${3:-/var/log/}INV=${1:-30}HELP(){echo"Usage:$0interval/path/source/dir//path/destination/dir/"echo"Exam:$030/opt/data/bak//mnt/disk1/"exit1}[-z$1]&&HELPCT=`du-s$DIR1|awk'{print$1}'`BFR=`du-s$DIR2|awk'{print$1}'`sleep$INVAFT=`du-s$DIR2|awk'{print$1}'`DMB=`echo$AFT|awk'{printf("%.2lf",$1/1024)}'`DGB=`echo$AFT|awk'{printf("%.2lf",$1/1024/1024)}'`MB=`echo$AFT$BFR$INV|awk'{printf("%.2lf",($1-$2)/$3/1024)}'`echo"Speed:"$MB"MB/s;Done:"$DGB"GB;"$DMB"MB"ETIME=`echo$CT$AFT$MB|awk'{printf("%.2lf",($1/1024-$2/1024)/$3/60)}'`EGB=`echo$CT$AFT|awk'{printf("%.2lf",($1-$2)/1024/1024)}'`EMB=`echo$CT$AFT|awk'{printf("%.2lf",($1-$2)/1024)}'`echo"Time:$ETIMEsec;Have:"$EGB"GB;"$EMB"MB"
#!/bin/bash DIR1=${2:-/var/log/} DIR2=${3:-/var/log/} INV=${1:-30} HELP(){ echo " Usage: $0 interval /path/source/dir/ /path/destination/dir/" echo " Exam: $0 30 /opt/data/bak/ /mnt/disk1/" exit 1 } [ -z $1 ] && HELP CT=`du -s $DIR1|awk '{print $1}'` BFR=`du -s $DIR2|awk '{print $1}'` sleep $INV AFT=`du -s $DIR2|awk '{print $1}'` DMB=`echo $AFT|awk '{printf("%.2lf",$1/1024)}'` DGB=`echo $AFT|awk '{printf("%.2lf",$1/1024/1024)}'` MB=`echo $AFT $BFR $INV|awk '{printf("%.2lf",($1-$2)/$3/1024)}'` echo "Speed: "$MB"MB/s; Done: "$DGB"GB; "$DMB"MB " ETIME=`echo $CT $AFT $MB|awk '{printf("%.2lf",($1/1024-$2/1024)/$3/60)}'` EGB=`echo $CT $AFT|awk '{printf("%.2lf",($1-$2)/1024/1024)}'` EMB=`echo $CT $AFT|awk '{printf("%.2lf",($1-$2)/1024)}'` echo "Time: $ETIME sec; Have: "$EGB"GB; "$EMB"MB" 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读