1 votos

No se puede montar un recurso compartido SMB desde cron

Tengo un script para montar temporalmente un recurso compartido SMB y copiar algunos archivos que se generan para mi equipo.

Funciona localmente, pero falla al montar el recurso compartido remoto cuando se ejecuta desde cron . No incluyo el script ya que los comandos en cuestión deberían ser evidentes en las salidas de abajo.

Salida de operación local:

$ get-reports.sh 
Tue Feb 18 16:14:05 EST 2020
+ whoami
gtarsa
+ id
uid=1234567(gtarsa) gid=1234567(#######) groups=1234567(#######),<usual Apple groups>
+ /sbin/umount /Users/gtarsa/reports
+ /sbin/mount -t smbfs //engsrv/reports /Users/gtarsa/reports
+ find /Users/gtarsa/reports -iname '*gtarsa*' -exec cp '{}' /Users/gtarsa/Downloads/reports ';'
+ /sbin/umount /Users/gtarsa/reports
+ set +x
$

Resultado de Cron:

$ cat ~/Downloads/reports/copy.log 
Tue Feb 18 12:20:00 EST 2020
+ whoami
gtarsa
+ id
uid=1234567(gtarsa) gid=1234567(#######) groups=1234567(#######),<usual Apple groups>
+ /sbin/umount /Users/gtarsa/reports
+ /sbin/mount -t smbfs //engsrv/reports /Users/gtarsa/reports
mount_smbfs: server rejected the connection: Authentication error
+ echo '? Unable to mount Reports Share'
? Unable to mount Reports Share
+ exit 1
$

He intentado especificar explícitamente las credenciales de conexión (como se describe en man mount_smbfs ) sin éxito. Estoy ejecutando script manualmente cuando lo necesito, pero preferiría que se ejecutara periódicamente por sí solo.

Algo es diferente en el cron entorno de mi entorno interactivo, pero no he sido capaz de discernir qué. En las búsquedas de respuestas en Google aparecen montones de "Cómo montar un recurso compartido desde la línea de comandos", pero no desde cron . Se agradecen las ideas y los puntos de vista.

1voto

Joel Puntos 112

Sí, algunas cosas son diferentes en el cron entorno de su gtarsa ambiente. Puede comprobar el cron entorno de usuario por sí mismo utilizando esta "receta" .

Dado que puedes ejecutar tu script manualmente, parece probable que hayas configurado tus contraseñas y permisos de Samba adecuadamente.

Ha elegido no compartir su crontab entrada, pero he mount ed y umount ed mis acciones de Samba desde un cron script con líneas en mi crontab así:

25 * * * * /sbin/mount -t smbfs //user:password@SambaServer/sharename /Users/seamus/SmbSrv01 

35 * * * * /sbin/umount /Users/seamus/SmbSrv01

Esto supone un punto de montaje declarado ( mkdir ) en /Users/seamus/SmbSrv01

Desde el cron la ruta del usuario no es la misma que gtarsa deberías comprobar que estás utilizando especificaciones de ruta completas para todo lo que no está en el cron PATH del usuario... o simplemente todo si no estás seguro.

Además, tenga en cuenta que la colocación de userid y password en un script o un crontab como he hecho aquí es algo que deberías no hacer. Menos inseguro es poner el userid y password en ~/.bash_profile ; por ejemplo:

export MOUNTUSERID="some_user" # where "some_user" is you, or a userid with Samba privileges 
export MOUNTUSERPWD="some_passwd" # "some_passwd" is "some_user" Samba password

Añade estas líneas al final de ~/.bash_profile y utilizar estos vares de entorno con el mount en su script. Antes de ejecutar el script, recargue ~/.bash_profile para recoger las variables de entorno que acabas de declarar:

source ~/.bash_profile

<redundant> Ha elegido no compartir su crontab entrada </redundant> pero si aún no lo ha hecho, podría ayudarse a sí mismo dirigiendo stderr de su script a un archivo para el análisis post-mortem. En su crontab :

* * * * * /full/path/to/script >> copy.log 2>&1  

capturará cualquier salida a stderr en el archivo copy.log

Por último, si está ejecutando su script bajo el @reboot probablemente deberías poner un sleep antes de intentar mount .

Si nada de esto ayuda, por favor edita tu Q para añadir tu crontab y la mayor parte de su scriptque sea posible y relevante.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X