[bcn-pm] Problemilla con script

TooManySecrets toomany at toomany.net
Thu Feb 10 06:26:12 PST 2005


Buenas.

Ante todo me gustaría que supieseis que mis conocimientos "perleros" son
nimios, ínfimos y sumamente humildes (más si lo comparamos con el
nivelito que hay por aquí).
Vereis, tengo un pequeño problemilla con un script perl que debe
realizar una automatización en un servidor. Teoricamente es bien
sencillo; pide unos datos y luego crea unos ficheros de configuración
para el servidor web y otro para el de ftp. Esto funciona correctamente.
La parte que no funciona es la de creación de unos ficheros-scripts de
arranque para el servicio. Estos tienen algún nombre de variable que hay
en el fichero a crear, que deben tener su equivalente como comando Perl,
ya que parece ser que se queja de esto. Aquí teneis los mensajes de
error:

Global symbol "$FreeBSD" requires explicit package name
at ./montaweb_ver2.pl line 180.
Global symbol "$command" requires explicit package name
at ./montaweb_ver2.pl line 180.
Global symbol "$required_files" requires explicit package name
at ./montaweb_ver2.pl line 180.
Global symbol "$command" requires explicit package name
at ./montaweb_ver2.pl line 235.
Global symbol "$required_files" requires explicit package name
at ./montaweb_ver2.pl line 235.

Y aquí la parte a que se refiere cuando indica la línea 180:

sub generarrcftp
{
    my $fich = "/usr/local/etc/rc.d/$datos{presence}_ftp.sh";
    open (FILE, ">$fich")
        || die "Imposible crear fichero rc de arranque de ftp
($fich).\n";
    print FILE <<EOF;

#!/bin/sh
#
# $FreeBSD: ports/ftp/proftpd/files/proftpd.sh,v 1.1 2003/11/03 19:40:38
mharo Exp $
#
#
## PROVIDE: proftpd
## REQUIRE: DAEMON
## BEFORE: LOGIN
## KEYWORD: FreeBSD shutdown
#
##
## Add the following lines to /etc/rc.conf to enable proftpd:
##
##proftpd_enable="YES"
##
## See proftpd(8) for flags
##
#
. /usr/local/etc/rc.subr

name=proftpd
rcvar=`set_rcvar`

command=/usr/local/libexec/proftpd
pidfile="/var/ftp/presence/$datos{presence}/proftpd/run/proftpd.pid"
required_files="/usr/local/etc/$datos{presence}_ftp.conf"


case $1 in
start)
       ${command} -c ${required_files}
        ;;
stop)
        kill `cat /var/ftp/presence/"$datos
{presence}"/proftpd/run/proftpd.pid` &>/dev/null
        ;;
*)
        echo "Uso: `basename $0` {start|stop}" >&2
        ;;
esac

exit 0

EOF

close(FILE);
}

¿Podeis decirme, por favor, dónde puede estar (o está) el fallo?

Gracias!!

PDTA: agradeceré también una pequeña explicación y, de ser el caso, un
link, una parte de la documentación, o algo, donde pueda mirar el porqué
de todo esto.
-- 
============================
Nine megs for the secretaries fair,
Seven megs for the hackers scarce,
Five megs for the grads in smoky lairs,
Three megs for system source;

One disk to rule them all,
One disk to bind them,
One disk to hold the files
And in the darkness grind 'em.
============================

                                   \|/ ____ \|/
Have a nice day  ;-)               "@'/ ,. \'@"
TooManySecrets                     /_| \__/ |_\
                                      \__U_/



More information about the Barcelona-pm mailing list