Rsync, Batch et crontab

Rsync, Batch et crontab - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 16-05-2013 à 19:05:34    

Bonjour,
 
Je rencontre un souci sous Linux avec Rsync :
J'ai un script contenant 4 lignes de Rsync
En lançant ce script en ligne de commande, pas de souci
Je le mets en crontab et là, il me fait n'importe quoi. Il me dit synchroniser plus de 100 fichiers alors qu'il n'y a eut aucune modif'. Des fichiers ne sont pas copiés, etc...
Que ce soit en ligne de commande ou en crontab, c'est le même user,  pas d'utilisation de sudo...
 
Donc la je sèche un peu et je suis preneur pour toute piste.  
 
Merci

Reply

Marsh Posté le 16-05-2013 à 19:05:34   

Reply

Marsh Posté le 17-05-2013 à 09:02:59    

mets les chemins absolus. crontab n'est pas un shell il n'a pas de .profile ou .bashrc donc pas d'envrionnement dédié....
par exemple cette cron avec plusieurs rsync fonctionne parfaitement parce que les chemins sont complets
 

17 */3 * * * sync                                                                
15 1 * * * rsync -zauv /home/francois/tmps/ordis/ /home/backup/Videos/ordis/    
15 2 * * 0 rsync -zauv /home/francois/tmps/modelisme/ /home/backup/Videos/modeli
sme/                                                                            
30 3 * * 0,4  mysqldump -u root -p"*******" --all-databases | gzip > Documents/
mysql.dump.full.$(date +\%Y\%m\%d).gz                                            
30 4 * * 1-5  mysqldump -u root -p"*******" perso | gzip > Documents/mysql.dump.$(date +\%Y\%m\%d).gz                                                          
45 */3 * * * find /home/francois -type f -name "*.out" -exec rm {} \; -print    
45 */5 * * * find /home/francois -type f -name "*.core" -exec mv {} /tmp/ \; -print                                                                              
45 5 * * * find /home/francois -type f -name "mysql*" -mtime +361 -exec rm {} \; -print                                                                          
55 6 * * * rsync -zauv /home/francois/tmps/velo/ /home/backup/Videos/velo        
55 7 * * * rsync -zauv /home/francois/Public/ /home/backup/Public/              
55 8 * * * rsync -zauv /home/francois/Images/ /home/backup/Images/              
55 9 * * * rsync -zauv /home/francois/Documents/ /home/backup/Documents          
20 */2 * * * sysctl | grep Ah >> /var/tmp/last.Ah.sysctl.log                    
2 10 * * 0 gzip /var/tmp/last.Ah.sysctl.log                                      
55 11 * * * rsync -zauv /home/francois/GSM/ /home/backup/GSM                    
52 12 * 1 * tar czvf /home/francois/Documents/GSM.$(+ \%Y\%m\%d).tar.gz /home/francois/GSM/                                                                      
50 13 * 1 * find /home/francois/Documents/ -type f -name "GSM*" -mtime +90 -exec rm {} \; -print  
55 9 1 * * rsync -zauv /home/backup/ /mnt/frs/


 
 :hello:


Message édité par goblin_rieur le 17-05-2013 à 09:08:08

---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)
Reply

Marsh Posté le 19-05-2013 à 12:13:14    

pour relancer sur le sujet,
 
je souhaite synchroniser un dossier partager windows vers un serveur linux, à partir de linux.
Le serveur doit donc :  
1. monter le dossier partagé si ce n'est pas déjà fait
2. synchroniser le contenu
 
Comme j'y connais rien, je bloque à chaque étape évidemment :D
Par exemple, pour monter un dossier partagé, je dois utiliser la commande mount, qui n'est accessible qu'en root sur ma machine.
 
Faut-il donc que mon script soit lancé par l'admin ? où y a t-il un moyen de lancer le mount via un utilisateur normal ? Si oui, comment faire ? Si je donne les droits en sudo, je vais être obligé de mettre mon mot de passe en clair dans le script, c'est pas top :D


---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 19-05-2013 à 12:16:00    

en fouillant un peu, je crois qu'il faudrait que je mette mount dans sudoers, ou un truc du genre ... ?


---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 20-05-2013 à 12:57:43    

_pollux_ a écrit :

en fouillant un peu, je crois qu'il faudrait que je mette mount dans sudoers, ou un truc du genre ... ?


 
de mémoire
chmod u+s /sbin/mount.cifs et /bin/umount


---------------
"Your god is too small", Giordano Bruno, 1548 - 1600
Reply

Marsh Posté le 20-05-2013 à 17:39:33    

A oué, bourrin mais pourquoi pas.
 
j'ai trouvé une autre solution entre temps, j'aurai du la rapporter ici.
Le truc, c'est d'autoriser l'utilisateur à utiliser la fonction mount via /etc/sudoers, programmable via le programme visudo.


---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 25-05-2013 à 11:48:22    

_pollux_ a écrit :

A oué, bourrin mais pourquoi pas.

 

j'ai trouvé une autre solution entre temps, j'aurai du la rapporter ici.
Le truc, c'est d'autoriser l'utilisateur à utiliser la fonction mount via /etc/sudoers, programmable via le programme visudo.

 

Ce n'est pas la bonne solution.

 

Il faut bien configurer le point de montage dans le fichier /etc/fstab en ajoutant les options qui vont bien pour autoriser les utilisateurs a monter la partition.

Reply

Marsh Posté le 25-05-2013 à 13:20:02    

ah ?

 

C'est pas con, mais le principe précisément c'est ? :??:
J'ai un dossier partagé sur ma machine windows en 192.168.0.10/Musique par exemple.
Je veux qu'un utilisateur puisse la monter sur /mnt/musique le temps de faire le rsync.

 

Je dois rajouter quelle type de ligne dans fstab ?

 

quelque chose de ce genre ?

 
Code :
  1. UUID = ?????? /mnt/musique noauto user 0 0


et ça va monter le dossier à quel moment ? Dès que je vais y faire une requête ?

 

je crois avoir compris, faut que je teste :)


Message édité par _pollux_ le 25-05-2013 à 13:40:55

---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 25-05-2013 à 19:20:56    

bon, j'ai essayé, mais j'ai une erreur à la con, je trouve pas le problème.

 

En gros, sur un dossier, ça se passe bien, sur l'autre, j'ai cette erreur:

 
Code :
  1. cedric@Tyndare:/mnt$ mount /mnt/photos/
  2. mount error(115): Operation now in progress
  3. Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
 

Pour un autre fichier partagé, aucun problème.
Les deux sont référencés de la façon suivante dans fstab :

Code :
  1. //192.189.0.10/Photos   /mnt/photos     cifs    uid=1000,username=cedric,password=****,user,noauto   0 0
  2. //192.189.0.10/Musique  /mnt/music      cifs    uid=1000,username=cedric,password=****,user,noauto   0 0


Message édité par _pollux_ le 25-05-2013 à 19:23:34

---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 26-05-2013 à 11:10:08    

Tu es sur que le répertoire est bien partagé dans windows ? Qu'il n'y a pas un firewall qui bloque ou autre ?

 

Si ça marche pour un ça doit marcher pour un autre :)

Reply

Marsh Posté le 26-05-2013 à 11:10:08   

Reply

Marsh Posté le 26-05-2013 à 12:14:41    

bah j'ai bein vérifié, essayé de créer d'autres dossiers partagés, etc, etc ...

 

Le fait est que j'arrive à partager un dossier, mais pas plus.

 

En passant par sudo mount, je peux tout monter sans problème, en passant par fstab, je ne monte qu'un seul dossier.

 

je comprends vraiment pas :D


Message édité par _pollux_ le 26-05-2013 à 12:15:36

---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 26-05-2013 à 12:28:37    

En effet c'est étrange.
 
Au  pire tu fais un script en bash (toute façon faut en faire un pour automatiser ton backup) qui
 
1 mount du premier rep,
2 rsync
3 unmount
4 mount du second
5 sync du second
4 umount
 
Comme ça tu n'en montes qu'un a la fois ^^

Reply

Marsh Posté le 26-05-2013 à 14:59:02    

oué, mais c'est ça le truc bizarre, ça ne le fait que sur certains dossiers...

 

C'est pour ça que j'y comprends rien. Même si je n'en monte qu'un seul, c'est passe pas. En gros, j'ai un dossier qui se monte, je sais pas pourquoi, et pas les autres. J'ai vérifié les droits sur /mnt/photos et /mnt/music et ce sont les mêmes...

 

donc, je pense qu'il y a effectivement un problème de droit quelque part, qui fait que je peux monter ce que je veux en root, mais pas en user, mais je n'arrive pas à voir de différence entre les fichiers. Faudra que je fasse ça à tête reposée :/

 
Code :
  1. cedric@Tyndare:/mnt$ ls -al
  2. total 20
  3. drwxr-xr-x  5 root root 4096 mai   25 19:26 .
  4. drwxr-xr-x 26 root root 4096 mai   19 00:57 ..
  5. drwxr-xr-x  2 root root 4096 mai   25 17:47 music
  6. drwxr-xr-x  2 root root 4096 mai   25 17:48 photos
  7. drwxr-xr-x  2 root root 4096 mai   25 19:26 test
  8. cedric@Tyndare:/mnt$ mount music
  9. Password:
  10. cedric@Tyndare:/mnt$ mount photos
  11. mount error(115): Operation now in progress
  12. Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
  13. cedric@Tyndare:/mnt$
 

je crois que je dois halluciner, mais je ne vois pas trop où :D


Message édité par _pollux_ le 26-05-2013 à 15:02:22

---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 26-05-2013 à 15:14:36    

Tente un chown cedric sur les repertoires

Reply

Marsh Posté le 26-05-2013 à 15:19:15    

pas mieux

 

pendant ce temps :

 
Code :
  1. cedric@Tyndare:/mnt$ sudo mount -t cifs //192.168.0.10/Photos /mnt/photos -o username=cedric
  2. Password:
  3. cedric@Tyndare:/mnt$
 

pas de soucis via sudo :/


Message édité par _pollux_ le 26-05-2013 à 15:20:32

---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 26-05-2013 à 22:57:12    

smbtree -b -N  
 
ça donne quoi en user normal puis en root ?

Reply

Marsh Posté le 27-05-2013 à 19:49:48    

Dans les 2 cas :

 
Code :
  1. cedric@Tyndare:~$ smbtree -b -N
  2. LEDA
  3.         \\TYNDARE                       Debian GNU/Linux
  4.                 \\TYNDARE\backup                monrep backup
  5.                 \\TYNDARE\toto                  partage samba
  6.                 \\TYNDARE\IPC$                  IPC Service (Debian GNU/Linux)
  7.         \\CASTOR                        castor
 

Le partage samba sur le serveur est normal, il n'a rien à voir, je pensais au départ utiliser un client sur windows pour backup, mais je trouve que travailler à partir du serveur est plus pratique (interrogation des clients qui si allumés sont backupés)


Message édité par _pollux_ le 27-05-2013 à 19:51:35

---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Marsh Posté le 02-06-2013 à 14:01:24    

bon bé problème résolu.
 
J'ai recréé un dossier sous windows et le partage a fonctionné.
J'ai toujours pas compris pourquoi ça ne marchait pas sachant que j'avais a priori exactement les mêmes droits sur chaque dossier, mais ... c'est windows [:spamafote]


---------------
Le topic du sport électronique@hfr : watch the l33t !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed