Guest User

traccar upgrade script

a guest
Jan 29th, 2024
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.18 KB | None | 0 0
  1. #!/bin/bash
  2. # by slawallo
  3.  
  4. show_menu(){
  5. normal=`echo "\033[m"`
  6. menu=`echo "\033[36m"` #Blue
  7. number=`echo "\033[33m"` #yellow
  8. bgred=`echo "\033[41m"`
  9. fgred=`echo "\033[31m"`
  10. printf "\n${menu}*********************************************************${normal}\n"
  11. printf "${menu}**${number} 1)${menu} Uninstall Traccar v4.1 and later ${normal}\n"
  12. printf "${menu}**${number} 2)${menu} Uninstall Traccar v4.0 and earlier ${normal}\n"
  13. printf "${menu}**${number} 3)${menu} Fresh Install Traccar ${normal}\n"
  14. printf "${menu}**${number} 4)${menu} Upgrade Traccar (Back up and restore config files) ${normal}\n"
  15. printf "${menu}**${number} 5)${menu} Restart Traccar v4.1 and later${normal}\n"
  16. printf "${menu}**${number} 6)${menu} Show log (q to exit)${normal}\n"
  17. printf "${menu}**${number} 7)${menu} Traccar service status (q to exit)${normal}\n"
  18. printf "${menu}**${number} 8)${menu} Check latest Traccar version ${normal}\n"
  19. printf "${menu}*********************************************************${normal}\n"
  20. printf "Please choose from menu option, ${fgred}enter ${normal}or ${fgred}x ${normal}to exit. ${normal}"
  21. read opt
  22. }
  23.  
  24. option_picked(){
  25. msgcolor=`echo "\033[01;31m"` # bold red
  26. normal=`echo "\033[00;00m"` # normal white
  27. message=${@:-"${normal}Error: No message passed"}
  28. printf "${msgcolor}${message}${normal}\n"
  29. }
  30.  
  31. clear
  32. show_menu
  33. while [ "$opt" != '' ]
  34. do
  35. if [ "$opt" = '' ]; then
  36. exit;
  37. else
  38. case $opt in
  39. 1) clear;
  40. option_picked "Option 1 Picked";
  41. while true; do
  42. read -p "Do you really want to uninstall Traccar y/n ? " yn
  43. case $yn in
  44. [Yy]* ) sudo systemctl stop traccar.service; sudo systemctl disable traccar.service; sudo rm /etc/systemd/system/traccar.service; sudo systemctl daemon-reload; sudo rm -R /opt/traccar; sleep 3; clear; break;;
  45. [Nn]* ) clear; break;;
  46. * ) echo "Please answer yes or no.";;
  47. esac
  48.  
  49. done
  50. show_menu;
  51. ;;
  52. 2) clear;
  53. option_picked "Option 2 Picked";
  54. while true; do
  55. read -p "Do you really want to uninstall Traccar y/n ? " yn
  56. case $yn in
  57. [Yy]* ) sudo /opt/traccar/bin/uninstallDaemon.sh; sudo rm -R /opt/traccar; sleep 3; clear; break;;
  58. [Nn]* ) clear; break;;
  59. * ) echo "Please answer yes or no.";;
  60. esac
  61.  
  62. done
  63.  
  64. show_menu;
  65. ;;
  66. 3) clear;
  67. option_picked "Option 3 Picked";
  68. # Download Traccar
  69. curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/traccar/traccar/releases/latest > upgrade_traccar.tmp
  70. sed -i 's/tag/download/g' upgrade_traccar.tmp
  71. sed -i 's|$|/traccar-linux-64-5.*.zip|g' upgrade_traccar.tmp
  72. sed -i "s/*/$(grep -E -o "v.{0,3}" upgrade_traccar.tmp | tail -c +2)/g" upgrade_traccar.tmp
  73.  
  74. while true; do
  75. echo Latest available version
  76. grep -E -o ".{0,21}z.{0,4}" upgrade_traccar.tmp
  77. read -p "Do you wish to download Traccar y/n ? " yn
  78. case $yn in
  79. [Yy]* ) wget -i upgrade_traccar.tmp; break;;
  80. [Nn]* ) rm -f traccar.run README.txt traccar-linux-*.zip* upgrade_traccar.tmp; break;;
  81. * ) echo "Please answer yes or no.";;
  82. esac
  83.  
  84. done
  85.  
  86. rm -f upgrade_traccar.tmp
  87.  
  88.  
  89. # Install Traccar
  90.  
  91. while true; do
  92. read -p "Do you wish to install Traccar y/n ? " yn
  93. case $yn in
  94. [Yy]* ) echo "Installation in 3s.";sleep 3; unzip traccar-linux-*.zip; sudo ./traccar.run; echo "Starting System"; sleep 2; sudo systemctl start traccar.service; echo "Done"; sleep 3; clear; break;;
  95. [Nn]* ) rm -f traccar.run README.txt traccar-linux-*.zip* upgrade_traccar.tmp; clear; break;;
  96. * ) echo "Please answer yes or no.";;
  97. esac
  98. done
  99.  
  100.  
  101. rm -f traccar.run README.txt traccar-linux-*.zip* upgrade_traccar.tmp
  102. show_menu;
  103. ;;
  104. # ...
  105.  
  106. 4) clear;
  107. option_picked "Option 4 Picked";
  108.  
  109. # Download Traccar 5.10
  110. curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/traccar/traccar/releases/latest > upgrade_traccar.tmp
  111. sed -i 's/tag/download/g' upgrade_traccar.tmp
  112. sed -i 's|$|/traccar-linux-64-*.zip|g' upgrade_traccar.tmp
  113. sed -i "s/*/$(grep -E -o "v.{0,4}" upgrade_traccar.tmp | tail -c +2)/g" upgrade_traccar.tmp
  114.  
  115. while true; do
  116. echo "Latest available version:"
  117. grep -E -o ".{0,21}z.{0,4}" upgrade_traccar.tmp
  118. read -p "Do you wish to download Traccar (version 5.10) y/n? " yn
  119. case $yn in
  120. [Yy]* )
  121. wget -i upgrade_traccar.tmp
  122. break;;
  123. [Nn]* )
  124. rm -f traccar.run README.txt traccar-linux-*.zip* upgrade_traccar.tmp
  125. break;;
  126. * )
  127. echo "Please answer yes or no.";;
  128. esac
  129. done
  130.  
  131. rm -f upgrade_traccar.tmp
  132.  
  133. # Upgrade Traccar to version 5.10
  134. while true; do
  135. read -p "Do you wish to upgrade Traccar to version 5.10? (y/n): " yn
  136. case $yn in
  137. [Yy]* )
  138. echo "Installation in 3s."
  139. sleep 3
  140.  
  141. # Backup existing configuration
  142. BACKUP_PATH='/root/backup/'
  143. if [ ! -d $BACKUP_PATH ]; then
  144. mkdir -p $BACKUP_PATH
  145. fi
  146. sudo systemctl stop traccar.service
  147. sudo cp /etc/systemd/system/traccar.service $BACKUP_PATH
  148. sudo cp /opt/traccar/conf/*.xml $BACKUP_PATH
  149. sudo cp /opt/traccar/conf/*.conf $BACKUP_PATH
  150. sudo cp /opt/traccar/data/*.db $BACKUP_PATH
  151.  
  152. # Remove existing Traccar installation
  153. sudo systemctl disable traccar.service
  154. sudo rm /etc/systemd/system/traccar.service
  155. sudo systemctl daemon-reload
  156. sudo rm -R /opt/traccar
  157.  
  158. # Install Traccar 5.10
  159. unzip traccar-linux-*.zip
  160. sudo ./traccar.run
  161.  
  162. # Restore configuration
  163. sudo cp $BACKUP_PATH/traccar.service /etc/systemd/system/traccar.service
  164. sudo chmod 664 /etc/systemd/system/traccar.service
  165. sudo systemctl daemon-reload
  166. sudo cp $BACKUP_PATH/*.xml /opt/traccar/conf
  167. sudo cp $BACKUP_PATH/*.conf /opt/traccar/conf
  168. sudo cp $BACKUP_PATH/*.db /opt/traccar/data
  169.  
  170. # Start Traccar
  171. sudo systemctl start traccar.service
  172. echo "Upgrade to Traccar 5.10 complete."
  173. sleep 3
  174. clear
  175. break;;
  176. [Nn]* )
  177. rm -f traccar.run README.txt traccar-linux-*.zip* upgrade_traccar.tmp
  178. clear
  179. break;;
  180. * )
  181. echo "Please answer yes or no.";;
  182. esac
  183. done
  184.  
  185. rm -f traccar.run README.txt traccar-linux-*.zip* upgrade_traccar.tmp
  186. show_menu;
  187. ;;
  188. 5) clear;
  189. option_picked "Option 5 Picked";
  190. sudo systemctl restart traccar.service;
  191. show_menu;
  192. ;;
  193. 6) clear;
  194. option_picked "Option 6 Picked";
  195. less /opt/traccar/logs/tracker-server.log;
  196. show_menu;
  197. ;;
  198. 7) clear;
  199. option_picked "Option 7 Picked";
  200. sudo systemctl status traccar.service;
  201. show_menu;
  202. ;;
  203. 8) clear;
  204. option_picked "Option 8 Picked";
  205. curl -fsSLI -o /dev/null -w %{url_effective} https://github.com/traccar/traccar/releases/latest > upgrade_traccar.tmp
  206. sed -i 's/tag/download/g' upgrade_traccar.tmp
  207. sed -i 's|$|/traccar-linux-64-5.*.zip|g' upgrade_traccar.tmp
  208. sed -i "s/*/$(grep -E -o "v.{0,3}" upgrade_traccar.tmp | tail -c +2)/g" upgrade_traccar.tmp
  209. echo Latest available version
  210. grep -E -o ".{0,21}z.{0,4}" upgrade_traccar.tmp
  211. rm -f upgrade_traccar.tmp
  212. show_menu;
  213. ;;
  214. x)exit;
  215. ;;
  216. \n)exit;
  217. ;;
  218. *)clear;
  219. option_picked "Pick an option from the menu";
  220. show_menu;
  221. ;;
  222. esac
  223. fi
  224. done
  225.  
Advertisement
Add Comment
Please, Sign In to add comment