MD5 脚本。如果 md5check 重试下载脚本失败,如何创建脚本

发布于 2024-12-17 07:40:33 字数 1053 浏览 0 评论 0原文

我运行了一个脚本,用于从我的服务器下载备份。

正在通过 MD5 检查文件是否相同。

这是我的脚本:

if [[ ! "$1" =~ ^[0-9]{8}$ ]] || [[ ! "$2" =~ ^[0-9\.]+$ ]] || [[ ! "$3" =~ ^[A-Z0-9]+$ ]]
then
   echo "Gebruik: backup_downloaden.sh jjjjmmdd ipadres naam"
   exit 1
fi

cd /home/backups/Servers

scp -i /home/backups/.ssh/dedecaan_backups backups@$2:$3-$1-0500.tgz.gpg .
scp -i /home/backups/.ssh/dedecaan_backups backups@$2:$3-$1-0500.tgz.gpg.md5 .
scp -i /home/backups/.ssh/dedecaan_backups backups@$2:$3-$1-0500.tgz.gpg.volledig .

date > $3-$1.log
ls -l $3-$1-* --time-style=long-iso >> $3-$1.log
md5sum.textutils -c $3-$1-0500.tgz.gpg.md5 >> $3-$1.log

scp -i /home/backups/.ssh/dedecaan_backups $3-$1.log backups@$2:$3-$1.log
# logs altijd ook naar de productieserver kopiëren
scp -i /home/backups/.ssh/dedecaan_backups $3-$1.log [email protected]:$3-$1.log

我希望如果检查失败,下载作业会重新开始。我该怎么做?

谢谢

I got a script running for the downloading of the backups from my server.

The files are being checked by MD5 is they are both the same.

Here is my script:

if [[ ! "$1" =~ ^[0-9]{8}$ ]] || [[ ! "$2" =~ ^[0-9\.]+$ ]] || [[ ! "$3" =~ ^[A-Z0-9]+$ ]]
then
   echo "Gebruik: backup_downloaden.sh jjjjmmdd ipadres naam"
   exit 1
fi

cd /home/backups/Servers

scp -i /home/backups/.ssh/dedecaan_backups backups@$2:$3-$1-0500.tgz.gpg .
scp -i /home/backups/.ssh/dedecaan_backups backups@$2:$3-$1-0500.tgz.gpg.md5 .
scp -i /home/backups/.ssh/dedecaan_backups backups@$2:$3-$1-0500.tgz.gpg.volledig .

date > $3-$1.log
ls -l $3-$1-* --time-style=long-iso >> $3-$1.log
md5sum.textutils -c $3-$1-0500.tgz.gpg.md5 >> $3-$1.log

scp -i /home/backups/.ssh/dedecaan_backups $3-$1.log backups@$2:$3-$1.log
# logs altijd ook naar de productieserver kopiëren
scp -i /home/backups/.ssh/dedecaan_backups $3-$1.log [email protected]:$3-$1.log

I want if the check fails that the download job starts over again. How can I do this?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

攒眉千度 2024-12-24 07:40:33

让我们看一下文档:info coreutils 'md5sum invoice'(如手册页 man md5sum 所示):

--检查'

 从每个 FILE 中读取文件名和校验和信息(不是数据)
 (或者如果没有指定 FILE,则来自标准输入)并报告是否
 校验和与指定文件的内容匹配。 

[...]

 如果任何列出的文件无法打开或读取,
 如果任何有效行的 MD5 校验和与
 关联的文件,或者如果找不到有效行,则“md5sum”退出
 非零状态。否则退出成功。

所以基本上,您需要检查 md5sum.textutils 的返回值,如果返回值不是 0 则返回到开头代码>.最后执行的命令的返回值存储在$?中。

let's take a look at the doc: info coreutils 'md5sum invocation' (as told from the man page man md5sum):

--check'

 Read file names and checksum information (not data) from each FILE
 (or from stdin if no FILE was specified) and report whether the
 checksums match the contents of the named files. 

[...]

 If any listed file cannot be opened or read,
 if any valid line has an MD5 checksum inconsistent with the
 associated file, or if no valid line is found, `md5sum' exits with
 nonzero status.  Otherwise, it exits successfully.

so basically, you need to check for the return value of md5sum.textutils, and go back to the beginning if the return value is not 0. the return value of the last command executed is stored in $?.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文