shell脚本之导出拓扑结构

4786阅读 0评论2011-07-06 duanjigang
分类:LINUX

不管别人说俺多么爱造轮子,俺就是这样的人,用自己的方法,写出自己喜欢的程序。。
这个脚本是导出拓扑结构的,data/dev下面是群组目录,群组下是设备列表和群组名称,设备目录下是每个设备的信息。
import_dev.sh
  1. TDIR="data/dev"
  2. mkdir -pv "$TDIR" >/dev/null 2>&1
  3. tfile="data/dfile.txt"
  4. unlink "$tfile" >/dev/null 2>&1
  5. touch "$tfile" >/dev/null 2>&1

  6. mysql -uroot -pxxx cmdb -e "select Id, name from t_group where valid=1" | awk '{if(NR>1)print$0}' | while read Id name
  7. do
  8.     mkdir -pv "$TDIR/$Id" >/dev/null 2>&1
  9.     mkdir -pv "$TDIR/$Id/devlist" >/dev/null 2>&1
  10.     echo "$Id" >> "$tfile"
  11.     echo "$name" > "$TDIR/$Id/name"
  12. done

  13. cat "$tfile" | while read grpid
  14. do
  15.     mysql -uroot -pxxx cmdb -e "select f_dev_id, dev_name, dev_ip from t_dev_grp,t_dev where f_grp_id = $grpid and t_dev_grp.valid = 1 and t_dev_grp.f_dev_id = t_dev.Id and t_dev.valid=1" | awk '{if(NR>1)print$0}' | while read ID NAME IP
  16.     do
  17.         mkdir -pv "$TDIR/$grpid/devlist/$ID" >/dev/null 2>&1
  18.         echo "$IP" > "$TDIR/$grpid/devlist/$ID/ip"
  19.         echo "$NAME" > "$TDIR/$grpid/devlist/$ID/name"    
  20.     done
  21. done
  22. unlink "$tfile" >/dev/null 2>&1
执行完通过tree看一下效果:
  1. tree data/dev/
  2. data/dev/
  3. |-- 3
  4. | |-- devlist
  5. | | |-- 1
  6. | | | |-- ip
  7. | | | `-- name
  8. | | `-- 4
  9. | | |-- ip
  10. | | `-- name
  11. | `-- name
  12. |-- 4
  13. | |-- devlist
  14. | | |-- 2
  15. | | | |-- ip
  16. | | | `-- name
  17. | | `-- 5
  18. | | |-- ip
  19. | | `-- name
  20. | `-- name
  21. `-- 5
  22.     |-- devlist
  23.     | |-- 3
  24.     | | |-- ip
  25.     | | `-- name
  26.     | `-- 6
  27.     | |-- ip
  28.     | `-- name
  29.     `-- name

  30. 12 directories, 15 files
上一篇:shell脚本之导出策略
下一篇:shell脚本之事务导出