使用 Shell 脚本自动下载最新的 WhatsApp APK
Automatically Download Latest WhatsApp APK using Shell Scripting
我正在尝试创建一个 cron 作业,使用 bash 脚本从他们的网站下载最新版本的 WhatsApp APK,并通过我的网站提供它。
到目前为止,我可以使用以下方法从站点获取版本号(省略用户代理部分):
wget -q -O - "$@" whatsapp.com/android | grep -oP '(?<=Version )([\d.]+)'
我可以使用以下命令下载 APK:
wget http://www.whatsapp.com/android/current/WhatsApp.apk
那部分很好。我想不通的是,只有当 APK 比服务器上现有的 APK 更新时,如何下载它。脚本应该如何?
由于我不是命令行专家,我想有比我目前的方法更好的方法来实现这一点,所以如果您有任何建议,我将不胜感激。
看来你需要自己管理版本。
我会在文件名中存储带有版本号的 apk 文件,例如 WhatsApp_<version-number>_.apk
。所以下载较新文件的脚本可以如下:
# Get the local version
oldVer=$(ls -v1 | grep -v latest | tail -n 1 | awk -F "_" '{print }')
# Get the server version
newVer=$(wget -q -O - "$@" whatsapp.com/android | grep -oP '(?<=Version )([\d.]+)')
# Check if the server version is newer
newestVer=$(echo -e "$oldVer\n$newVer" | sort -n | tail -n 1)
#Download the newer versino
[ "$newVer" = "$newestVer" ] && [ "$oldVer" != "$newVer" ] && wget -O WhatsApp_${newVer}_.apk http://www.whatsapp.com/android/current/WhatsApp.apk || echo "The newest version already downloaded"
#Delete all files that not is a new version
find ! -name "*$newVer*" ! -type d -exec rm -f {} \;
# set the link to the latest
ln -sf $(ls -v1 | grep -v latest| tail -n1) latest
我正在尝试创建一个 cron 作业,使用 bash 脚本从他们的网站下载最新版本的 WhatsApp APK,并通过我的网站提供它。
到目前为止,我可以使用以下方法从站点获取版本号(省略用户代理部分):
wget -q -O - "$@" whatsapp.com/android | grep -oP '(?<=Version )([\d.]+)'
我可以使用以下命令下载 APK:
wget http://www.whatsapp.com/android/current/WhatsApp.apk
那部分很好。我想不通的是,只有当 APK 比服务器上现有的 APK 更新时,如何下载它。脚本应该如何?
由于我不是命令行专家,我想有比我目前的方法更好的方法来实现这一点,所以如果您有任何建议,我将不胜感激。
看来你需要自己管理版本。
我会在文件名中存储带有版本号的 apk 文件,例如 WhatsApp_<version-number>_.apk
。所以下载较新文件的脚本可以如下:
# Get the local version
oldVer=$(ls -v1 | grep -v latest | tail -n 1 | awk -F "_" '{print }')
# Get the server version
newVer=$(wget -q -O - "$@" whatsapp.com/android | grep -oP '(?<=Version )([\d.]+)')
# Check if the server version is newer
newestVer=$(echo -e "$oldVer\n$newVer" | sort -n | tail -n 1)
#Download the newer versino
[ "$newVer" = "$newestVer" ] && [ "$oldVer" != "$newVer" ] && wget -O WhatsApp_${newVer}_.apk http://www.whatsapp.com/android/current/WhatsApp.apk || echo "The newest version already downloaded"
#Delete all files that not is a new version
find ! -name "*$newVer*" ! -type d -exec rm -f {} \;
# set the link to the latest
ln -sf $(ls -v1 | grep -v latest| tail -n1) latest