fork download
  1. #!/bin/bash
  2.  
  3. # ideone boilerplate: run in temp dir
  4. t=$(mktemp -d -t ideone.XXXXXXXX) || exit
  5. trap 'rm -rf "$t"' ERR EXIT
  6. cd "$t"
  7.  
  8. mkdir -p sos{1..3}
  9. touch sos1/sosreport1.tar.gz \
  10. sos2/sosreport2.tar.gz \
  11. sos3/sosreport3.tar.gz
  12. echo myserver1 >sos1/hostname_map.txt
  13. echo myserver2 >sos2/hostname_map.txt
  14. echo myserver3 >sos3/hostname_map.txt
  15.  
  16. tr _ '\t' <<\: >machine_list.txt
  17. [one]apple machine #1_myserver1
  18. [two]apple machine #2_myserver2
  19. [three]apple machine #3_myserver3
  20. :
  21.  
  22.  
  23. srvname () {
  24. awk -v srv="$(cat "$1")" -F '\t' '$2==srv { print $1; exit }' machine_list.txt
  25. }
  26.  
  27. for dir in ./sos*/; do
  28. server=$(srvname "$dir"/hostname_map.txt)
  29. mv "$dir"/sosreport*.tar.gz "$dir/$server.tar.gz"
  30. done
  31.  
  32. ls -l sos*
Success #stdin #stdout 0.02s 5516KB
stdin
Standard input is empty
stdout
sos1:
total 4
-rw-rw-r-- 1 20062 1000 10 Sep 21 08:31 hostname_map.txt
-rw-rw-r-- 1 20062 1000  0 Sep 21 08:31 [one]apple machine #1.tar.gz

sos2:
total 4
-rw-rw-r-- 1 20062 1000 10 Sep 21 08:31 hostname_map.txt
-rw-rw-r-- 1 20062 1000  0 Sep 21 08:31 [two]apple machine #2.tar.gz

sos3:
total 4
-rw-rw-r-- 1 20062 1000 10 Sep 21 08:31 hostname_map.txt
-rw-rw-r-- 1 20062 1000  0 Sep 21 08:31 [three]apple machine #3.tar.gz