md5probe 866 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/bash
  2. # set charset to avoid problems
  3. export LANG=en_US.UTF-8
  4. export LANGUAGE=en_US:en
  5. export LC_CTYPE=en_US.UTF-8
  6. # config
  7. base_dir=/home/dp/all_dirs
  8. sum_dir=$base_dir/_md5_check/sums
  9. log_dir=$base_dir/_md5_check/$(date +%Y%m%d)
  10. # functions
  11. function check_md5 {
  12. export LANG=en_US.UTF-8
  13. export LANGUAGE=en_US:en
  14. export LC_CTYPE=en_US.UTF-8
  15. my_stdout=$log_dir/${1:0: -4}_stdout.txt
  16. my_stderr=$log_dir/${1:0: -4}_stderr.txt
  17. my_time=$log_dir/${1:0: -4}_time.txt
  18. my_analyse=$log_dir/${1:0: -4}_analysis.txt
  19. cd $base_dir
  20. (time md5sum -c $sum_dir/${1} > $my_stdout 2> $my_stderr) 2> $my_time
  21. grep -v OK $my_stdout > $my_analyse
  22. }
  23. # main program
  24. mkdir $log_dir
  25. cd $sum_dir
  26. for i in a0[1-6]*.md5; do
  27. check_md5 $i &
  28. done
  29. wait
  30. for i in a0[7-9]*.md5 a1[0-2]*.md5; do
  31. check_md5 $i &
  32. done
  33. wait
  34. for i in a1[3-7]*.md5; do
  35. check_md5 $i &
  36. done