Sustituye
#!/bin/sh por #!/bin/bash es buena práctica usar #!/usr/bin/env bash
On 28/06/18 15:38, Rommel Rodriguez Toirac wrote:
Mis saludos;
usando como base de conocimiento otro script distribuido en la lista hace un
tiempo creé uno para ver si descargo las actualizaciones del antivirus
segurmatica desde un sitio de nuestra institución.
Este es el script:
#!/bin/sh
DIR_TEMP="/root/tmp/segurmatica/"
URL="ftp://ftp.onat.gob.cu/Antivirus/SegAV/updates/"
TRAZAS="/var/log/update-segurmatica.log"
DESTINO="/var/ftp/pub/antivirus/actualizaciones/segurmatica"
rm -rf $DIR_TEMP
mkdir $DIR_TEMP
wget --no-proxy $URL -P $DIR_TEMP;
UPDATE_NAME=`cat /root/tmp/segurmatica/index.html | grep `date +%-d%-m%Y --
date='last day'` | cut -d '"' -f 2`
wget --no-proxy --recursive --no-host-directories --cut-dirs=3 -o $TRAZAS -P
$DIR_TEMP $UPDATE_NAME
rm -rf $DESTINO/*
cp -f $DIR_TEMP/* $DESTINO
exit 0
No me trabaja, pues la línea que dice:
UPDATE_NAME=`cat /root/tmp/segurmatica/index.html | grep `date +%-d%-m%Y --
date='last day'` | cut -d '"' -f 2`
me está dando problema a la hora de ejecutarse; pero si ejecutas esa línea de
comandos en consola, sí lo hace bien, es decir hay algún caracter que tengo
que ponerle a esa línea dentro del script para que no se pierda que en la
línea de comando no es necesario. ¿cual será?
El error que me devuelve la línea de comando para esa línea en el script es:
./segurmatica.sh: command substitution: línea 13: error sintáctico cerca del
elemento inesperado `|'
./segurmatica.sh: command substitution: línea 13: ` | cut -d '"' -f 2'
Modo de empleo: grep [OPCIÓN]... PATRÓN [FICHERO]...
Pruebe 'grep --help' para más información.
./segurmatica.sh: línea 13: +%-d%-m%Y: no se encontró la orden
--
Yoander Valdés Rodríguez
GNU/Linux SysAdmin
Desarrollador PHP y Blogger
http://www.librebyte.net