Snapy est un petit script que j'ai écris pour faire des sauvegardes sur
un système unix, à base de rsync et cp -al (pour créer des liens durs et
faire de l'incrémental).
http://flibuste.net/libre/snapy
Pour ceux qui conaissent déjà, la dernière version utilise une
configuration légèrement différente (pour avoir plus de libertés sur les
paramètres rsync), l'utilisation de logging et un système de cron.
Je l'ai également adapté pour qu'il puisse fonctioner sous windows, en
utilisant cwrsync.
J'ai par contre de temps en temps un problème sous windows, il se bloque
sans raison apparente et aléatoirement au moment du rsync et n'en
décolle plus :-(
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Méta-MCI
Salut zossi !
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess "externe".
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par Popen4.
Un exemple, en fin de message, dans lequel j'envoie des commandes, les unes derrière les autres, en récupérant le résultat.
Autre point : pour faire des sauvegardes avec synchronisation de répertoires, j'utilise Robocopy, qui a des options intéressantes (voir : http://www.microsoft.com/downloads/details.aspx?FamilyID467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en ou http://www.lacible.net/fr/?page=sources robocopy fait partie du resource-kit de windows, gratuit, et qui contient quelques utilitaires intéressants).
def lcmd(lst=None): a = os.popen4(lst[0]) for i in lst[1:]: if i!='': a[0].write(i+'rn') a[0].flush() return a[1].readlines()
l=[ 'CMD /K', 'DIR *.c /B', 'DATE /T', 'TIME /T', 'EXIT' ] lret = lcmd(l) for n in lret: print n[:-1]
Salut zossi !
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je
n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess
"externe".
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par
Popen4.
Un exemple, en fin de message, dans lequel j'envoie des commandes, les unes
derrière les autres, en récupérant le résultat.
Autre point : pour faire des sauvegardes avec synchronisation de
répertoires, j'utilise Robocopy, qui a des options intéressantes (voir :
http://www.microsoft.com/downloads/details.aspx?FamilyID467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en
ou
http://www.lacible.net/fr/?page=sources
robocopy fait partie du resource-kit de windows, gratuit, et qui contient
quelques utilitaires intéressants).
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess "externe".
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par Popen4.
Un exemple, en fin de message, dans lequel j'envoie des commandes, les unes derrière les autres, en récupérant le résultat.
Autre point : pour faire des sauvegardes avec synchronisation de répertoires, j'utilise Robocopy, qui a des options intéressantes (voir : http://www.microsoft.com/downloads/details.aspx?FamilyID467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en ou http://www.lacible.net/fr/?page=sources robocopy fait partie du resource-kit de windows, gratuit, et qui contient quelques utilitaires intéressants).
def lcmd(lst=None): a = os.popen4(lst[0]) for i in lst[1:]: if i!='': a[0].write(i+'rn') a[0].flush() return a[1].readlines()
l=[ 'CMD /K', 'DIR *.c /B', 'DATE /T', 'TIME /T', 'EXIT' ] lret = lcmd(l) for n in lret: print n[:-1]
William Dode
On 06-04-2006, Méta-MCI wrote:
Salut zossi !
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess "externe".
Est-ce que tu as pu reproduire le blocage ? Le problème c'est que je n'arrive pas à le reproduire d'où la difficulté pour tester, hors ça fonctionne bien plusieurs jours de suite...
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par Popen4.
Merci, je vais essayer...
Un exemple, en fin de message, dans lequel j'envoie des commandes, les unes derrière les autres, en récupérant le résultat.
Autre point : pour faire des sauvegardes avec synchronisation de répertoires, j'utilise Robocopy, qui a des options intéressantes (voir : http://www.microsoft.com/downloads/details.aspx?FamilyID467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en ou http://www.lacible.net/fr/?page=sources robocopy fait partie du resource-kit de windows, gratuit, et qui contient quelques utilitaires intéressants).
Il ne me semble pas qu'on puisse copier sur une machine unix, je me trompe ? De toutes façon, je risque d'avoir le même problème si ça vient de subprocess...
-- William Dodé - http://flibuste.net
On 06-04-2006, Méta-MCI wrote:
Salut zossi !
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je
n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess
"externe".
Est-ce que tu as pu reproduire le blocage ? Le problème c'est que je
n'arrive pas à le reproduire d'où la difficulté pour tester, hors ça
fonctionne bien plusieurs jours de suite...
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par
Popen4.
Merci, je vais essayer...
Un exemple, en fin de message, dans lequel j'envoie des commandes, les unes
derrière les autres, en récupérant le résultat.
Autre point : pour faire des sauvegardes avec synchronisation de
répertoires, j'utilise Robocopy, qui a des options intéressantes (voir :
http://www.microsoft.com/downloads/details.aspx?FamilyID467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en
ou
http://www.lacible.net/fr/?page=sources
robocopy fait partie du resource-kit de windows, gratuit, et qui contient
quelques utilitaires intéressants).
Il ne me semble pas qu'on puisse copier sur une machine unix, je me
trompe ? De toutes façon, je risque d'avoir le même problème si ça vient
de subprocess...
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess "externe".
Est-ce que tu as pu reproduire le blocage ? Le problème c'est que je n'arrive pas à le reproduire d'où la difficulté pour tester, hors ça fonctionne bien plusieurs jours de suite...
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par Popen4.
Merci, je vais essayer...
Un exemple, en fin de message, dans lequel j'envoie des commandes, les unes derrière les autres, en récupérant le résultat.
Autre point : pour faire des sauvegardes avec synchronisation de répertoires, j'utilise Robocopy, qui a des options intéressantes (voir : http://www.microsoft.com/downloads/details.aspx?FamilyID467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en ou http://www.lacible.net/fr/?page=sources robocopy fait partie du resource-kit de windows, gratuit, et qui contient quelques utilitaires intéressants).
Il ne me semble pas qu'on puisse copier sur une machine unix, je me trompe ? De toutes façon, je risque d'avoir le même problème si ça vient de subprocess...
-- William Dodé - http://flibuste.net
Méta-MCI
Re !
Est-ce que tu as pu reproduire le blocage ?
Ben, en fait, ce n'était pas facile. Des fois ça marchait, d'autres fois, tout bloquait. Et puis, il y a(vait) un problème avec les I/O standards : on peut soit écrire, soit lire, soit écrire d'abord, puis lire après, mais pas mélanger les deux.
Je comptais sur subprocess, car avec windows-2000 (c'est déjà vieux), Popen et Python 2.3, les buffers de récupération des informations étaient très (trop) limités (8 ko environ, de mémoire).
Mais, avec Win-XP, et Python 2.4, je récupère des sorties de plus de 10 Mo (par exemple, un DIR complet, sur quelques centaines de milliers de fichiers).
Donc, à partir du moment où ça a marché comme ça, je n'ai même plus regardé subprocess.
Sinon, pour Robocopy, je ne sais pas si ça peut copier sur Unix, mais je m'en sers avec mon NAS, qui n'est pas windows (j'utilise les UNC, comme serveurdata). Dans ce cas, l'option /FFT permet de s'affranchir de certains problèmes de datation des fichiers (exactement comme entre NTFS et FAT). Enfin, si tu as un outil qui convient, tant mieux. Je ne t'oblige pas à utiliser Robocopy. Au contraire, même, si, en contre-partie, tu payes un coup à boire... Sinon, il est facile de faire un outil en Python. Mais, d'après mes tests, on est environ deux fois plus lent.
@+
MCI
Re !
Est-ce que tu as pu reproduire le blocage ?
Ben, en fait, ce n'était pas facile. Des fois ça marchait, d'autres fois,
tout bloquait. Et puis, il y a(vait) un problème avec les I/O standards : on
peut soit écrire, soit lire, soit écrire d'abord, puis lire après, mais pas
mélanger les deux.
Je comptais sur subprocess, car avec windows-2000 (c'est déjà vieux), Popen
et Python 2.3, les buffers de récupération des informations étaient très
(trop) limités (8 ko environ, de mémoire).
Mais, avec Win-XP, et Python 2.4, je récupère des sorties de plus de 10 Mo
(par exemple, un DIR complet, sur quelques centaines de milliers de
fichiers).
Donc, à partir du moment où ça a marché comme ça, je n'ai même plus regardé
subprocess.
Sinon, pour Robocopy, je ne sais pas si ça peut copier sur Unix, mais je
m'en sers avec mon NAS, qui n'est pas windows (j'utilise les UNC, comme
\serveurdata). Dans ce cas, l'option /FFT permet de s'affranchir de
certains problèmes de datation des fichiers (exactement comme entre NTFS et
FAT).
Enfin, si tu as un outil qui convient, tant mieux. Je ne t'oblige pas à
utiliser Robocopy. Au contraire, même, si, en contre-partie, tu payes un
coup à boire...
Sinon, il est facile de faire un outil en Python. Mais, d'après mes tests,
on est environ deux fois plus lent.
Ben, en fait, ce n'était pas facile. Des fois ça marchait, d'autres fois, tout bloquait. Et puis, il y a(vait) un problème avec les I/O standards : on peut soit écrire, soit lire, soit écrire d'abord, puis lire après, mais pas mélanger les deux.
Je comptais sur subprocess, car avec windows-2000 (c'est déjà vieux), Popen et Python 2.3, les buffers de récupération des informations étaient très (trop) limités (8 ko environ, de mémoire).
Mais, avec Win-XP, et Python 2.4, je récupère des sorties de plus de 10 Mo (par exemple, un DIR complet, sur quelques centaines de milliers de fichiers).
Donc, à partir du moment où ça a marché comme ça, je n'ai même plus regardé subprocess.
Sinon, pour Robocopy, je ne sais pas si ça peut copier sur Unix, mais je m'en sers avec mon NAS, qui n'est pas windows (j'utilise les UNC, comme serveurdata). Dans ce cas, l'option /FFT permet de s'affranchir de certains problèmes de datation des fichiers (exactement comme entre NTFS et FAT). Enfin, si tu as un outil qui convient, tant mieux. Je ne t'oblige pas à utiliser Robocopy. Au contraire, même, si, en contre-partie, tu payes un coup à boire... Sinon, il est facile de faire un outil en Python. Mais, d'après mes tests, on est environ deux fois plus lent.
@+
MCI
William Dode
On 06-04-2006, Méta-MCI wrote:
Salut zossi !
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess "externe".
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par Popen4.
Apparement Popen4 sous windows ne sait pas retourner le code de retour de la commande appelée ?
-- William Dodé - http://flibuste.net
On 06-04-2006, Méta-MCI wrote:
Salut zossi !
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je
n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess
"externe".
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par
Popen4.
Apparement Popen4 sous windows ne sait pas retourner le code de retour
de la commande appelée ?
J'ai eu plusieurs blocages avec subprocess, et Python 2.4. A noter que je n'avais pas eu ces blocages, sous Python 2.3, avec le module subprocess "externe".
D'autres ont également signalé des problèmes du même genre.
Du coup, pour piloter des utilitaire "ligne de commande", je passe par Popen4.
Apparement Popen4 sous windows ne sait pas retourner le code de retour de la commande appelée ?
-- William Dodé - http://flibuste.net
William Dode
On 06-04-2006, Méta-MCI wrote:
Sinon, pour Robocopy, je ne sais pas si ça peut copier sur Unix, mais je m'en sers avec mon NAS, qui n'est pas windows (j'utilise les UNC, comme serveurdata). Dans ce cas, l'option /FFT permet de s'affranchir de certains problèmes de datation des fichiers (exactement comme entre NTFS et FAT). Enfin, si tu as un outil qui convient, tant mieux. Je ne t'oblige pas à utiliser Robocopy. Au contraire, même, si, en contre-partie, tu payes un coup à boire... Sinon, il est facile de faire un outil en Python. Mais, d'après mes tests, on est environ deux fois plus lent.
Je doute fort d'arriver à trouver quelque chose de mieux que rsync à travers ssh...
-- William Dodé - http://flibuste.net
On 06-04-2006, Méta-MCI wrote:
Sinon, pour Robocopy, je ne sais pas si ça peut copier sur Unix, mais je
m'en sers avec mon NAS, qui n'est pas windows (j'utilise les UNC, comme
\serveurdata). Dans ce cas, l'option /FFT permet de s'affranchir de
certains problèmes de datation des fichiers (exactement comme entre NTFS et
FAT).
Enfin, si tu as un outil qui convient, tant mieux. Je ne t'oblige pas à
utiliser Robocopy. Au contraire, même, si, en contre-partie, tu payes un
coup à boire...
Sinon, il est facile de faire un outil en Python. Mais, d'après mes tests,
on est environ deux fois plus lent.
Je doute fort d'arriver à trouver quelque chose de mieux que rsync à
travers ssh...
Sinon, pour Robocopy, je ne sais pas si ça peut copier sur Unix, mais je m'en sers avec mon NAS, qui n'est pas windows (j'utilise les UNC, comme serveurdata). Dans ce cas, l'option /FFT permet de s'affranchir de certains problèmes de datation des fichiers (exactement comme entre NTFS et FAT). Enfin, si tu as un outil qui convient, tant mieux. Je ne t'oblige pas à utiliser Robocopy. Au contraire, même, si, en contre-partie, tu payes un coup à boire... Sinon, il est facile de faire un outil en Python. Mais, d'après mes tests, on est environ deux fois plus lent.
Je doute fort d'arriver à trouver quelque chose de mieux que rsync à travers ssh...