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.
Para copiar archivos se usa el comando cp
Por ej:
cp -r /DirectorioOrigen/ /Destino
Nota el parámetro -r, este se utiliza para copiar el directorio y todo su contenido.
Saludos!
Hola:
Gracias por responder!!!
Mira yo accedo a mi carpeta en samba de esta manera:
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:
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.
Y si más bien montas el directorio remoto en tu sistema y después accedes a el como uno normal.
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.
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!!!
Montalo con el comando mount (necesitas tener instalados los paquetes de samba para poder montar usando cifs):
mount -t cifs -o password=PASS //servidor/Recurso /Destino
Para mas info sobre esto:
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!
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:
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?
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
Te esta faltando el paquete samba-client
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!
Ok. deja instalo, pruebo y les aviso ;D
Gracias por todo... les aviso como voy... va???
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...
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 :(
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
oigan el problema puede ser que no existe el archivo
/sbin/mount.smbfs
como puedo agregarlo???
Cita de: Roxhp en 7 Octubre 2010, 19:01 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.
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
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.
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 ;)
@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.
Ok. muchas gracias vertex
Lo checare y lo pondre en practica, eres de mucha ayuda ;) :D
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!
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???
-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.
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!
gracias!!!
mira mi carpeta tiene los iguientes permisos
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
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).
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.
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í:
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!
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...
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
¿Como esta compartido este directorio desde el servidor samba?
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... :)
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: \>