[manuelles Update über die Konsole]

  • [manuelles Update über die Konsole]

    Unter wiki.qnap.com/wiki/Manually_Updating_Firmware gibt es eine Anleitung,
    wie man mit Hilfe der Konsole ein manuelles Update ausführen kann.

    Ich habe es in ein Script zusammengefaßt,
    in dem man "nur" den Dateinamen und die URL zu dem Firmware-Image austauschen muß.
    Das Script muß beim ersten Mal natürlich ausführbar gemacht werden (chmod +x *.sh)
    und dann gestartet werden.
    Es ermittelt den Pfad der Download-Freigabe und läd das Image dort herunter,
    entpackt es, erstellt die erforderlichen Symlinks laut der Anleitung und führt das Update aus.
    Danach muß man nur noch selbst den Neustart veranlassen.

    Quellcode

    1. #US URL="http://us1.qnap.com/Storage/TS-220TurboNAS"
    2. #EUROPE URL="http://eu1.qnap.com/Storage/TS-220TurboNAS"
    3. #GLOBAL URL="http://download.qnap.com/Storage/TS-220TurboNAS"
    4. URL="http://eu1.qnap.com/Storage/TS-220TurboNAS"
    5. FILE="TS-220_20140927-4.1.1.zip"
    6. CMD_ECHO="/bin/echo"
    7. CMD_GETCFG="/sbin/getcfg"
    8. PATH_CONFIG="/etc/config"
    9. SAMBA_CFG_FILE="${PATH_CONFIG}/smb.conf"
    10. CONF_DEFSHARE="${PATH_CONFIG}/def_share.info"
    11. SMB_SHARE_DOWNLOAD=`${CMD_GETCFG} "SHARE_DEF" "defDownload" -f ${CONF_DEFSHARE} -d Download`
    12. SMB_PATH_DOWNLOAD=`${CMD_GETCFG} "${SMB_SHARE_DOWNLOAD}" "path" -f ${SAMBA_CFG_FILE} -d no`
    13. cd ${SMB_PATH_DOWNLOAD}
    14. if [ -f ${SMB_PATH_DOWNLOAD}/${FILE} ]; then
    15. ${CMD_ECHO} "Deleting file : '${SMB_PATH_DOWNLOAD}/${FILE}'"
    16. rm ${SMB_PATH_DOWNLOAD}/${FILE}
    17. fi
    18. wget ${URL}/${FILE}
    19. if [ "$?" = "0" ]; then
    20. ${CMD_ECHO} "Download : OK"
    21. ${CMD_ECHO} "Unzip file '${FILE}'"
    22. unzip ${FILE}
    23. if [ "$?" = "0" ]; then
    24. ${CMD_ECHO} "Unzip : OK"
    25. if [ ! -d /mnt/HDA_ROOT/update ]; then
    26. ${CMD_ECHO} "Create directory '/mnt/HDA_ROOT/update'"
    27. mkdir /mnt/HDA_ROOT/update
    28. else
    29. ${CMD_ECHO} "Directory '/mnt/HDA_ROOT/update' exists"
    30. fi
    31. ${CMD_ECHO} "Remove symlink '/mnt/update'"
    32. rm -rf /mnt/update
    33. ${CMD_ECHO} "Create symlink '/mnt/update' to '/mnt/HDA_ROOT/update'"
    34. ln -sf /mnt/HDA_ROOT/update /mnt/update
    35. ${CMD_ECHO} "Move file '${FILE/zip/img}' to '/mnt/HDA_ROOT/update/'"
    36. mv ${SMB_PATH_DOWNLOAD}/${FILE/zip/img} /mnt/HDA_ROOT/update/
    37. ${CMD_ECHO} "Run Update"
    38. /etc/init.d/update.sh /mnt/HDA_ROOT/update/${FILE/zip/img}
    39. else
    40. ${CMD_ECHO} $?
    41. fi
    42. else
    43. ${CMD_ECHO} $?
    44. fi
    Alles anzeigen


    Für Verbesserungen (Zb. Abfangen von Fehlern) habe ich ein offenes Ohr . ;)

    Als nächsten Schritt würde ich wohl die Downloadadresse des Images dem Script als Parameter übergeben.