script_retain.sh 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #!/bin/sh
  2. obj=pdutar
  3. function kill_proc()
  4. {
  5. proc=$1
  6. kill -9 $(ps | grep $proc | grep -v grep | awk '{print $1}')
  7. }
  8. function kill_all()
  9. {
  10. kill_proc smartMonitor.sh
  11. killall RestartApp.sh smartMornitor.sh smartMonitor.sh snmpd Qt_Test smartPDU
  12. sleep 1
  13. echo V > /dev/watchdog
  14. sleep 1
  15. echo V > /dev/watchdog
  16. }
  17. function rm_old()
  18. {
  19. rm -f /etc/init.d/S90PDUStart
  20. rm -rf /usr/local/snmpd
  21. rm -f /usr/lib/libnetsnmp*
  22. rm -f /usr/sbin/smartMornitor.sh
  23. rm -f /usr/libmpr.so /usr/libhttp.so /usr/lib/libesp.o /usr/lib/libmodbus*
  24. }
  25. function chg_net()
  26. {
  27. curIP=`ifconfig eth0 |sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'`
  28. text="# interface file auto-generated by buildroot\n\
  29. \n\
  30. auto lo\n\
  31. iface lo inet loopback\n\
  32. \n\
  33. auto eth0\n\
  34. iface eth0 inet static\n\
  35. address $curIP\n\
  36. netmask 255.255.255.0\n\
  37. gateway 192.168.1.1\n\
  38. \n"
  39. echo -e $text > /etc/network/interfaces
  40. ifconfig eth0 $curIP
  41. }
  42. kill_all
  43. #rm_old
  44. cd /mnt/UDISK
  45. #rm -rf web fw
  46. mkdir -p /tmp/upgrade
  47. echo release $obj
  48. tar -zxvf $obj -C /tmp/upgrade > /dev/null 2>&1
  49. cd /tmp/upgrade
  50. find /tmp/upgrade -type f > /tmp/upgrade.log
  51. PORT_FILE="/tmp/upgrade/mnt/UDISK/app/smartPDU_PhList.ini /tmp/upgrade/mnt/UDISK/app/smartPDU.ini /tmp/upgrade/mnt/UDISK/app/pdu_dat.db /tmp/upgrade/mnt/UDISK/app/pdu_dat_bak.db"
  52. no_cp_flag=0
  53. while IFS= read -r line; do
  54. flag=0
  55. for n in $PORT_FILE
  56. do
  57. if [[ $n == $line ]];then
  58. no_cp_flag=1
  59. break;
  60. fi
  61. done
  62. if [[ $no_cp_flag -ne 1 ]]; then
  63. #echo $line
  64. detection="${line:12}"
  65. dir=`/usr/bin/dirname $detection`
  66. if [[ ! -d $dir ]];then
  67. mkdir -p $dir
  68. fi
  69. #cp file to dir
  70. cp $line $detection
  71. echo "cp $line $detection"
  72. fi
  73. done < /tmp/upgrade.log
  74. #delete file upgrade
  75. rm -rf /tmp/upgrade/*
  76. rm /tmp/upgrade.log
  77. cd /mnt/UDISK
  78. #delete obj
  79. rm -f $obj
  80. sync
  81. sync
  82. #chg_net
  83. echo ++++ upgrade ok! ++++
  84. echo ++++ reboot now! ++++
  85. reboot -d 1
  86. exit 0