Rsync iterado, integración con EC2
Ayer hice un script para coordinar directorios con rsync. Hoy lo integré con EC2, usando boto. Así no tengo que andar buscando el nombre de dns de la instancia cada vez. Cambien las constantes que aparecen arriba y úsenlo a piaccere. Para que sea usable tienen que poner la clave para loguearse en la instancia en su agente de SSH.
#!/usr/bin/env python
import subprocess
import sys
import time
import boto
import getpass
AKI = "AKIVAUNACCESSKEY"
USER = "ubuntu"
INAME = "INSTANCENAME"
TARGET = "TARGET_DIR"
SOURCE = "SOURCE_DIR"
def main():
sak = getpass.getpass("Enter secret access key:")
ec2 = boto.connect_ec2( AKI, sak )
dns_name = ec2.get_only_instances(filters={"tag:Name":INAME})[0].dns_name
while True:
try:
subprocess.check_call([
"rsync",
"-z",
"-r",
"--delete",
"--exclude=*.pyc",
"--exclude=*.log",
SOURCE,
"%s@%s:%s" % (USER, dns_name, TARGET)
])
print ".",
sys.stdout.flush()
time.sleep(1)
except subprocess.CalledProcessError, e:
if e.returncode in [10,11,12,14,22,23,24,30,35]: # See http://wpkg.org/Rsync_exit_codes
print "R",
sys.stdout.flush()
else:
raise
if __name__ == '__main__':
main()
Espero que les sirva,
Aureliano.
No hay comentarios.:
Publicar un comentario