Jelajahi Sumber

first release

Dmitriev Roman 3 tahun lalu
induk
melakukan
674ec7b60c
1 mengubah file dengan 201 tambahan dan 0 penghapusan
  1. 201 0
      sync_mikrotik_repo.sh

+ 201 - 0
sync_mikrotik_repo.sh

@@ -0,0 +1,201 @@
+#!/bin/bash
+
+#path for you repo
+TARGET_DIR="/mnt/mirror/routeros"
+
+#Analyze ROS versions
+# ROS 6
+#stable=>"6" lts=>"6fix"
+versions6=("6" "6fix")
+
+#ROS7
+versions7=("7")
+
+#needed architecture's
+firmware_arch=("arm" "arm64" "mipsbe" "mmips" "ppc" "smips" "tile" "x86")
+
+#path for wget
+WGET="/bin/wget"
+
+##################################### Main ###################################################
+
+#always sync packages
+force=$1
+
+wget_opts="-q -nc"
+
+if [ -n "${force}" ]; then
+    echo "Force flag for download packages found!"
+    fi
+
+###################################### ROS 6 ##################################################
+
+echo "Check ROS 6 releases"
+for firmware_version in "${versions6[@]}"; do
+echo "Analyze version ${firmware_version}"
+echo "Get latest release"
+${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/LATEST.${firmware_version}" -O "${TARGET_DIR}/LATEST.${firmware_version}.new"
+ret=$?
+if [ ${ret} -ne 0 ]; then
+    echo "Error get release version for ${firmware_version}"
+    exit 100
+    fi
+
+old_version=$(cat "${TARGET_DIR}/LATEST.${firmware_version}" | head -1 | awk '{ print $1 }')
+new_version=$(cat "${TARGET_DIR}/LATEST.${firmware_version}.new" | head -1 | awk '{ print $1 }')
+
+if [ "x${force}" == "x" -a "x${new_version}" == "x${old_version}" ]; then
+    echo "Version don't changed. Next."
+    rm -f "${TARGET_DIR}/LATEST.${firmware_version}.new"
+    continue
+    fi
+
+echo "Found new version ${new_version}. Old: ${old_version}. Try download packages..."
+if [ ! -e "${TARGET_DIR}/${new_version}" ]; then
+    mkdir -p "${TARGET_DIR}/${new_version}"
+    fi
+
+cd "${TARGET_DIR}/${new_version}"
+${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/${new_version}/CHANGELOG"
+ret=$?
+if [ ${ret} -ne 0 ]; then
+    echo "Error get changelog for ${new_version}. Skip release."
+    continue
+    fi
+download_error=
+for file_arch in "${firmware_arch[@]}"; do
+    #packages
+    ${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/${new_version}/all_packages-${file_arch}-${new_version}.zip"
+    ret=$?
+    if [ ${ret} -ne 0 ]; then
+	echo "Error get all_packages-${file_arch}-${new_version}.zip"
+	download_err=1
+        break
+	fi
+    #routeros
+    if [ "${file_arch}" == "ppc" ]; then
+        ${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/${new_version}/routeros-powerpc-${new_version}.npk"
+	else
+        ${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/${new_version}/routeros-${file_arch}-${new_version}.npk"
+        fi
+    ret=$?
+    if [ ${ret} -ne 0 ]; then
+	echo "Error get routeros-${file_arch}-${new_version}.npk"
+	download_err=1
+        break
+	fi
+    done
+
+if [ -n "${download_err}" ]; then
+    echo "Found errors by download packages. Skip release"
+    rm -f "${TARGET_DIR}/LATEST.${firmware_version}.new"
+    download_err=
+    continue
+    fi
+
+#other files
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/btest.exe"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/dude-install-${new_version}.exe"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/flashfig.exe"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/install-image-${new_version}.zip"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/mikrotik-${new_version}.iso"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/mikrotik.mib"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/netinstall64-${new_version}.zip"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/netinstall-${new_version}.tar.gz"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/netinstall-${new_version}.zip"
+
+#winbox
+${WGET} ${wget_opts} "https://mt.lv/winbox" -O "${TARGET_DIR}/${new_version}/winbox.exe"
+${WGET} ${wget_opts} "https://mt.lv/winbox64" -O "${TARGET_DIR}/${new_version}/winbox64.exe"
+
+rm -f "${TARGET_DIR}/LATEST.${firmware_version}"
+mv "${TARGET_DIR}/LATEST.${firmware_version}.new" "${TARGET_DIR}/LATEST.${firmware_version}"
+done
+
+###################################### ROS 7 ##################################################
+
+echo "Check ROS 7 releases"
+for firmware_version in "${versions7[@]}"; do
+echo "Analyze version ${firmware_version}"
+echo "Get latest release"
+${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/LATEST.${firmware_version}" -O "${TARGET_DIR}/LATEST.${firmware_version}.new"
+ret=$?
+if [ ${ret} -ne 0 ]; then
+    echo "Error get release version for ${firmware_version}"
+    exit 100
+    fi
+
+old_version=$(cat "${TARGET_DIR}/LATEST.${firmware_version}" | head -1 | awk '{ print $1 }')
+new_version=$(cat "${TARGET_DIR}/LATEST.${firmware_version}.new" | head -1 | awk '{ print $1 }')
+
+if [ "x${force}" == "x" -a "x${new_version}" == "x${old_version}" ]; then
+    echo "Version don't changed. Next."
+    rm -f "${TARGET_DIR}/LATEST.${firmware_version}.new"
+    continue
+    fi
+
+echo "Found new version ${new_version}. Old: ${old_version}. Try download packages..."
+if [ ! -e "${TARGET_DIR}/${new_version}" ]; then
+    mkdir -p "${TARGET_DIR}/${new_version}"
+    fi
+
+cd "${TARGET_DIR}/${new_version}"
+${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/${new_version}/CHANGELOG"
+ret=$?
+if [ ${ret} -ne 0 ]; then
+    echo "Error get changelog for ${new_version}. Skip release."
+    continue
+    fi
+download_error=
+for file_arch in "${firmware_arch[@]}"; do
+    #packages
+    ${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/${new_version}/all_packages-${file_arch}-${new_version}.zip"
+    ret=$?
+    if [ ${ret} -ne 0 ]; then
+	echo "Error get all_packages-${file_arch}-${new_version}.zip"
+	download_err=1
+        break
+	fi
+    #routeros
+    if [ "${file_arch}" == "x86" ]; then
+        ${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/${new_version}/routeros-${new_version}.npk"
+	else
+        ${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/${new_version}/routeros-${new_version}-${file_arch}.npk"
+        fi
+    ret=$?
+    if [ ${ret} -ne 0 ]; then
+	echo "Error get routeros-${new_version}-${file_arch}.npk"
+	download_err=1
+        break
+	fi
+    done
+
+if [ -n "${download_err}" ]; then
+    echo "Found errors by download packages. Skip release"
+    rm -f "${TARGET_DIR}/LATEST.${firmware_version}.new"
+    download_err=
+    continue
+    fi
+
+#other files
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/btest.exe"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/dude-install-${new_version}.exe"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/flashfig.exe"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/install-image-${new_version}.zip"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/mikrotik-${new_version}.iso"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/mikrotik.mib"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/netinstall64-${new_version}.zip"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/netinstall-${new_version}.tar.gz"
+${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/netinstall-${new_version}.zip"
+
+#winbox
+${WGET} ${wget_opts} "https://mt.lv/winbox" -O "${TARGET_DIR}/${new_version}/winbox.exe"
+${WGET} ${wget_opts} "https://mt.lv/winbox64" -O "${TARGET_DIR}/${new_version}/winbox64.exe"
+
+rm -f "${TARGET_DIR}/LATEST.${firmware_version}"
+mv "${TARGET_DIR}/LATEST.${firmware_version}.new" "${TARGET_DIR}/LATEST.${firmware_version}"
+echo "Version ${new_version} downloaded."
+
+done
+
+exit