Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: Roxhp en 7 Octubre 2010, 16:48 pm



Título: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 16:48 pm
Hola:

Bueno este es mi dilema, necesito respaldar algunos archivos que estan en una carpeta compartida con samba a una carpeta local, quiero que esto se haga en automatico mediante un cron y para esto necesito realizar un archivo sh para que acceda a la carpeta y copie los archivos.

Cuando corro el script puedo acceder a la carpeta compartida pero no recuperar los archivos sino que se queda dentro de samba sin recuperar nada.

Soy nueva en hacer cosas como estas con shell, de hecho soy nueva en esto de shell pero me gustaria saber si esto que quiero hacer es posible y si me pudieran hechar una mano para poder realizarlo, obvio no todo pero si una guia para ayudarme.

Muchas gracias de antemano por su atencio y espero alguno de ustedes pueda ayudarme.


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: j4np0l en 7 Octubre 2010, 17:07 pm
Para copiar archivos se usa el comando cp

Por ej:

Código
  1. cp -r /DirectorioOrigen/ /Destino

Nota el parámetro -r, este se utiliza para copiar el directorio y todo su contenido.

Saludos!


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 17:28 pm
Hola:

Gracias por responder!!!

Mira yo accedo a mi carpeta en samba de esta manera:

Código:

smbclient //servidor/carpeta -U usuario contraseña

// con esto normalmente se recupera desde samba los archivos desde linea de comandos
mget *.TXT


Con la primera linea me abre el directorio pero me deja dentro no me recupera nada

con la sentencia que tu me diste supongo que seria de esta forma:

Código:

cp -r smb://servidor/carpeta -U usuario password /directorio_local

// o bien de esta manera...
cp -r smb://servidor/carpeta /directorio_local


En la primera linea me marca error en el parametro -U porque no es valido, y con la segunda pues de todos modos me dice que el directorio no existe.

La carpeta de la cual quiero copiar esta en un servidor y esta esta compartida mediante samba y protegida por contraseña.

No se si me explico bien o te enredo mas.


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: -Ramc- en 7 Octubre 2010, 17:34 pm
Y si más bien montas el directorio remoto en tu sistema y después accedes a el como uno normal.

Código:
smbmount //hostname/directory pathLocal/ -o user=X password=Y rw

Y después accedes a pathLocal/ como cualquier otra carpeta de tu sistema, en ese caso ya podríaas hacer el cp o lo que sea necesario.


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 17:54 pm
Gracias!!!

Pero sinceramente eso ya lo habia intentado solo que no se porque razon no me deja montar la carpeta

me dice que no es un comando valido o encontrado no se mucho de ingles :P  smbmount: command not found

pero pues se mas o menos que jalada es y el caso es que no me lo permite o reconoce. no se si dependa de los permisos de la carpeta compartida o a que se deba, pero no me deja montarla en mi local.

Lo malo es que aqui en la empresa son medio paranoicos y pues mejor ni me meto al servidor y no se si quieran darle los privilegios que necesito a la carpeta.

Espero y sepas cual es la razon, seguire investigando y cualkier cosa te aviso, gracias!!!


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: j4np0l en 7 Octubre 2010, 18:00 pm
Montalo con el comando mount (necesitas tener instalados los paquetes de samba para poder montar usando cifs):

Código
  1. mount -t cifs -o password=PASS //servidor/Recurso /Destino

Para mas info sobre esto:

Código
  1. man mount.cifs

Si no te deja usar cifs, proba con smbfs (cifs es un update del protocolo smb). Un comentario: smbmount es una herramienta, no un comando propio de linux, así que lo que te esta pasando es que no tenes esta herramienta instalada.

P.D: Que distro estas usando?

Saludos!


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: -Ramc- en 7 Octubre 2010, 18:02 pm
Sino encuentra el comando pueden ser dos cosas.

Que el comando esté en la carpeta /sbin/ por lo que lo va a encontrar si lo ejecutas como root.

Pero, no creo que sea eso, intenta ejecutar el comando como root y me avisas.

También puede ser que el comando no esté en el sistema y puede ser porque instalaste mal samba o lo instalaste incompleto.

Por otro lado puedes usar directamente mount:
Código:
mount -t cifs //hostname/directory pathLocal/ -o username=X,password=Y


¿Qué distribución usas en la maquina? y ¿Cómo instalaste samba? ¿Qué paquetes?


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 18:22 pm
Mira la distrubucion es centos 5, la instalacion de samba la trae por defecto, esta lista para usarse.

Tengo reinstalar??? porke tampoco me reconoce cifs ni smbfs

ahhhh y si lo estoy ejecutando como root


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: j4np0l en 7 Octubre 2010, 18:27 pm
Te esta faltando el paquete samba-client

Código
  1. yum install samba-client

Centos 5 tiene cifs implementado en el kernel, pero para montar un directorio remoto necesitas ese paquete.

Aviso: estamos hablando de la maquina desde la cual estas intentando montar, NO del servidor.

Saludos!


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 18:36 pm
Ok. deja instalo, pruebo y les aviso  ;D

Gracias por todo... les aviso como voy... va???


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 18:56 pm
Hola!!!

Ya instale y probe nuevamente de todas las formas que me mostraron me faltaba el nombre de usuario y lo puse

la sentencia quedo asi...

Código:

mount -t cifs -o username=hostname password=password smb://hostname/carpeta directorio_local


Pero aun asi no me saca todo esto, me imagino que el problema es otro, pero la verdad aun me falta mucho en linux  :(

Código:

Usage: mount -V                 : print version
       mount -h                 : print this help
       mount                    : list mounted filesystems
       mount -l                 : idem, including volume labels
So far the informational part. Next the mounting.
The command is `mount [-t fstype] something somewhere'.
Details found in /etc/fstab may be omitted.
       mount -a [-t|-O] ...     : mount all stuff from /etc/fstab
       mount device             : mount device at the known place
       mount directory          : mount known device here
       mount -t type dev dir    : ordinary mount command
Note that one does not really mount a device, one mounts
a filesystem (of the given type) found on the device.
One can also mount an already visible directory tree elsewhere:
       mount --bind olddir newdir
or move a subtree:
       mount --move olddir newdir
One can change the type of mount containing the directory dir:
       mount --make-shared dir
       mount --make-slave dir
       mount --make-private dir
       mount --make-unbindable dir
One can change the type of all the mounts in a mount subtree
containing the directory dir:
       mount --make-rshared dir
       mount --make-rslave dir
       mount --make-rprivate dir
       mount --make-runbindable dir
A device can be given by name, say /dev/hda1 or /dev/cdrom,
or by label, using  -L label  or by uuid, using  -U uuid .
Other options: [-nfFrsvw] [-o options] [-p passwdfd].


me marca que para mas informacion revise  8 mount


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 19:01 pm
oigan el problema puede ser que no existe el archivo

 /sbin/mount.smbfs

como puedo agregarlo???


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: -Ramc- en 7 Octubre 2010, 19:13 pm
oigan el problema puede ser que no existe el archivo

 /sbin/mount.smbfs

como puedo agregarlo???
Pero, no estás usando smbfs. De igual manera lo puedes instalar, instalando el paquete smbfs.

Puede ser que estás poniendo mal la sentencia del mount.

Código:
mount -t cifs //hostname/directory pathLocal/ -o username=X,password=Y

username es el nombre del usuario al que te vas a identificar en la máquina remota, no el hostname.

Por otro lado usa smbmount si ya lo tienes instalado, sino instala samba-common


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 19:38 pm
Yaaaaaaa!!!!! ;D

Muchas gracias chicos!!!  les debo muchisimo  ;-)

La sentencia estaba bien, lo que generaba el problema es que no me lo acepta con el nombre del servidor, forzosamente tiene que ser la ip.

Código:

mount -t cifs -o username=usuario, password=contraseña //ip_servidor/carpeta directorio_local


por si a alguien mas le hace falta, ya solo seguire probando con el cron pero ya con esto lo demas es mas facil.

En serio muchisimas gracias :D besos y abrazos  ;)


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Foxy Rider en 7 Octubre 2010, 20:43 pm
@Roxhp: Acá te dejo un mini tuto sobre el cron -> http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

Saludos.


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 7 Octubre 2010, 23:27 pm
Ok. muchas gracias vertex

Lo checare y lo pondre en practica, eres de mucha ayuda ;) :D


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: j4np0l en 7 Octubre 2010, 23:42 pm
También te recomiendo que te fijes en la documentación de CentOS que es muy buena (yo tengo un servidor en produccion con esta distro, y me ha servido bastante), para el caso de cron:

http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-autotasks.html (http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-autotasks.html)

Saludos!


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 8 Octubre 2010, 16:33 pm
Muchas gracias chavos su ayuda me ha sido muy util,

j4np0l la documentacion que me comentas esta muy buena la pondre en practica al igual que la de vertex.

Ahora otra vex solicito su ayuda...  :-X

Al querer copiar algunos archivos o trabajar con ellos me dice que no puedo hacerlo que no tengo permiso, los permisos de los archivos estan de esta manera... alguno sabe a que se refieres la S es en los permisos de grupo, son los permisos del root del servidor o bien del de mi makina???

Código:

-rwxrwSrwx 1 root root 418 oct  7 18:21 /var/www/html/archivos/archivos_recibidos/AR0120101007182129.TXT


Sorry pero aunke ya llevo algo en linux casi me dedico a programar y eso me deja poco tiempo para meterme a lo demas y a buscarle a linux como deberia :(, pero debo de hacerlo mas

Gracias por toda su ayuda.


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: j4np0l en 8 Octubre 2010, 17:31 pm
La S en los permisos de ejecución del grupo, indica que, cuando se ejecute este archivo, se va a ejecutar como si lo estaría ejecutando alguien perteneciente a este grupo (y con los permisos correspondientes a este grupo). En ese caso, si lo ejecuta un usuario común, va a tener los permisos (solo en lo que a la ejecución de este archivo respecta, no para el resto de las cosas) que tenga el grupo root.

A ese archivo en particular, lo deberías poder abrir sin problemas, pero si tenés problemas para copiarlo, fijate los permisos del directorio en donde estas tratando de guardarlo.

Saludos!


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 8 Octubre 2010, 17:43 pm
gracias!!!

mira mi carpeta tiene los iguientes permisos

Código:
drwxrwxrwx 3 root root      0 oct  8 09:49 archivos_recibidos

Estoy logueada como root y pertenezco al mismo grupo root, le cambio el grupo a otro que tenga permiso tambien como root por ejemplo daemon y no me permite cambiarle nada, intento copiar o trabajar con los archivos y no me lo permite, de hecho cuando estaban en la carpeta compartida si podia trabajar bien con ellos no habia ningun problema.

Sera algun permiso que le di, de hecho como no me dejaba un amigo me aconsejo que le pusiera umask=000 para que tuviera permisos pero aun no me deja hacer nada.

Creo que estas cosas raras solo me salen a mi :( :P


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: j4np0l en 8 Octubre 2010, 18:03 pm
umask no es que te setea los permisos, sino que te define los permisos que van a tener los archivos y directorios que crees con el usuario para el cual corriste el comando.

¿Estas trabajando en una pc de manera local o es un recurso compartido? ¿No estarás trabajando sobre una partición que este montada solo con permisos de lectura? (en este último caso nose como se deberían mostrar los permisos, asi que pregunto por las dudas).


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 8 Octubre 2010, 18:22 pm
Estoy en el local.

Mira realice un sistema de compras el caso es que quieren que los articulos que estan en la base de datos maestra los tenga actualizados en esta para que puedan trabajar con los datos actualizados, constantemente se estan actualizando los articulos.

Estas actualizaciones las mandan de las tiendas en archivos de texto y me transfieren una copia a mi.

Asi que realice una opcion que corre los archivos que recibo y los mete a la base de datos de mi local, estoy sirviendo como servidor, cosas que me especificaron aki que la verdad esta mal que se realicen asi pero ni modos que le vamos a hacer, para mi solo deberia de existir una base de datos unica y de ahi trabajar pero bueno hay cosas en las que solo debo de obedecer ordenes.

Esta opcion toma los archivos de una carpeta en el localhost que tiene todos los permisos de lectura y escritura, se supone que toma los archivos los renombra y pasa a otra carpeta, introduce los datos a la base de datos y genera archivos sql para retroalimentar otras bases de datos en caso de ser necesario, y genera archivos de errores en caso de que haya ocurrido alguno.

El caso es que ahorita no me deja trabajar con estos archivos y ni sikiera copiarlos y hacerlo manualmente.



Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: j4np0l en 8 Octubre 2010, 22:57 pm
La verdad, al tener unos permisos tan permisivos (valga la redundancia  ;D), me parece raro el problema que estas teniendo (¿quizás el archivo esta mal?). Hagamos esto, como root abrí una consola y escribí:

Código
  1. gedit /var/www/html/archivos/archivos_recibidos/AR0120101007182129.TXT

Si no te lo abre, fijate si en la consola te tira algun error, o el mismo gedit te dice algo, si son los permisos ahi te va a decir. ¿Alguna configuración de SELinux?

Saludos!


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 8 Octubre 2010, 23:34 pm
Hola

Mira el problema sigue siendo el mismo.... No tiene los permisos necesarios para abrir el archivo.

aunque checa ya copiar de la carpeta compartida directamente o traer los archivos desde linea de comandos directamente con get o mget me lo permite, pero desde la carpeta montada no.

Pueden ser los permisos de la carpeta al montarse??? pero tiene todos los permisos, esta muy raro lo que pasa o no doy con que es lo que pasa, se que al final vendra saliendo una babosada pero no doy con que es :(

Te digo por permisos y como dices tu tan permisivos no deberia de haber ningun problema.  :(   :¬¬

La configuracion de selinux esta asi...

Código:

SELINUX=disabled

SELINUXTYPE=targeted

SETLOCALDEFS=0



Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: j4np0l en 9 Octubre 2010, 14:20 pm
¿Como esta compartido este directorio desde el servidor samba?


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: Roxhp en 11 Octubre 2010, 16:46 pm
Pues de hecho le pregunte a mi jefe si le habia movido algo ye me dijo que no, chechamos y tien permiso de lectura y escritura, ya desde el modo grafico me deja cortar y pegar los archivos, tambien desde linea de comandos pero desde la carpeta compartida.

El caso es cuando intento hacerlo desde linea de comandos o en el modo grafico en la carpeta que esta montada en mi local no me lo permite y pues como podras ver tienen demasiados permisos como para que no lo haga :S

La verdad ya me desespero esto y no doy con que podria ser, he revisado una y otra vez los permisos y nada, se los quito y se los vuelvo a asignar pero no me deja cambiarlos tampoco aunque este como root y pertenezca a ese grupo.

Pues no me queda mas que seguirle buscando asi que si se te ocurre algo que podria ser pues ahi me avisas plis, talvez tenga que intentarlo hacer de otra forma.

Gracias por todo...  :)


Título: Re: como copiar archivos con samba desde un archivo sh
Publicado por: lucardo5 en 19 Septiembre 2017, 20:32 pm
Siguiendo con la primer propuesta ...

smbclient -U nombre_de_usuario “192.168.0.130/compartidos”
Enter nombre_de_usuario password: (Aqui introduzco la contraseña del nombre_de_usuario_)

y con el comando get descargaremos el archivo

get miArchivo.txt
getting file \miArchivo.txt of size 24434 as miArchivo.txt (215,0 KiloBytes/sec) (average 215,0 KiloBytes/sec)
smb: \>