
Estoy intentando escribir un script de shell para obtener la URL dinámica en la que se encuentra ComboFix enBleepingComputer.com/download/combofix
Sin embargo, por alguna razón parece que no puedo hacer que mi expresión regular coincida con el enlace de descarga de "haga clic aquí" si la descarga no funciona. Utilicé un probador de expresiones regulares y decía que coincidía con el enlace, pero parece que no puedo hacerlo funcionar cuando lo ejecuto, aparece un resultado vacío. Aquí está mi guión completo:
#!/bin/bash
# Download latest ComboFix from BleepingComputer
wget -O Listing.html "http://www.bleepingcomputer.com/download/combofix/" -nv
downloadpage=$(sed -ne 's@^.*<a href="\(http://www[.]bleepingcomputer[.]com/download/combofix/dl/[0-9]\+/\)" class="goodurl">.*$@\1@p' Listing.html)
echo "DL Page: $downloadpage"
secondpage="$downloadpage"
wget -O Download.html $secondpage -nv
file=$(sed -ne 's@^.*<a href="\(http://download[.]bleepingcomputer[.]com/dl/[0-9A-Fa-f]\+/[0-9A-Fa-f]\+/windows/security/anti[-]virus/c/combofix/ComboFix[.]exe\)">.*$@\1@p' Download.html)
echo "File: $file"
wget -O "ComboFix.exe" "$file" -nv
rm Listing.html
rm Download.html
mkdir Tools
mv "ComboFix.exe" "Tools/ComboFix.exe" -f
Las dos primeras descargas funcionan correctamente y termino con: http://www.bleepingcomputer.com/download/combofix/dl/12/
Pero no coincide con el sed final que me dará el enlace de descarga.
El código que se supone que debe coincidir es:
<a href="http://download.bleepingcomputer.com/dl/6c497ccbaff8226ec84c97dcdfc3ce9a/5058d931/windows/security/anti-virus/c/combofix/ComboFix.exe">click here</a>
SOLUCIÓN:
Para cualquiera interesado, el código final que funcionó fue:
#!/bin/bash
# Download latest ComboFix from BleepingComputer
wget -O Download.html "http://www.bleepingcomputer.com/download/combofix/12" -nv
file=$(sed -ne 's@^.*<a href=\x27\(http://download[.]bleepingcomputer[.]com/dl/[0-9A-Fa-f]\+/[0-9A-Fa-f]\+/windows/security/anti[-]virus/c/combofix/ComboFix[.]exe\)\x27>.*$@\1@p' Download.html)
echo "File URL: $file"
wget -OSN "ComboFix.exe" "$file" -nv
Respuesta1
Eso es gracioso: acabo de ir ahttp://www.bleepingcomputer.com/download/combofix/dl/12/y encontrado
<ahref='http://download.bleepingcomputer.com/dl/587c6038..../..../ComboFix.exe'>haga clic aquí</a>.
es decir, la URL está delimitada por comillas simples (') en lugar de comillas dobles (") (que es lo que sed
busca su comando).
Respuesta2
No es necesario descargar la primera página ya que la segunda página es estática. Siempre será:
http://www.bleepingcomputer.com/download/combofix/dl/12/
También se recomienda encarecidamente que utilice el-NORTEmarca en wget para verificar las marcas de tiempo. Esto solo descargará ComboFix si es más nuevo que el de su computadora.
También asegúrese de que su script solo se ejecute una o dos veces al día. No es necesario ejecutarlo más que eso.
Al limitar las solicitudes y utilizar -N, deberías evitar que nuestros scripts te prohíban automáticamente.
Gracias