Skip to content
Snippets Groups Projects
Select Git revision
  • 9d360f2f7ff8c783dedb5b68ae35e97a08ebd6c3
  • master default
2 results

fetch-backup-work

Blame
  • fetch-backup-work 5.75 KiB
    #!/bin/sh
    
    TASKS=/opt/LYSrdiff/var/tasks
    NT=$TASKS.tmp
    
    rm -f $NT
    
    ssh plantagenet ls -1 /svnroot \
     | sort \
     | awk '$1 == "lost+found" { next }
            {print "lsvn", $1, "plantagenet /svnroot/" $1}' \
    >> $NT
    
    ssh plantagenet ls -1 /cvsroot \
     | sort \
     | awk '$1 == "lost+found" { next }
            {print "lyscvs", $1, "plantagenet /cvsroot/" $1}' \
    >> $NT
    
    ssh nyarlathotep ls -1 /srv/www/users \
     | sort \
     | awk '{print "lyswww-users", $1, "nyarlathotep /srv/www/users/" $1}' \
    >> $NT
    ssh nyarlathotep ls -1 /srv/www/projects/front \
     | sort \
     | awk '{print "lyswww-projects-front", $1, "nyarlathotep /srv/www/projects/front/" $1}' \
    >> $NT
    ssh nyarlathotep ls -1 /srv/www/projects/roxen \
     | sort \
     | awk '{print "lyswww-projects-roxen", $1, "nyarlathotep /srv/www/projects/roxen/" $1}' \
    >> $NT
    echo lyswww-projects-planet root nyarlathotep /srv/www/projects/planet >> $NT
    echo lyswww-main root nyarlathotep /srv/www/main >> $NT
    echo nyarlathotep etc nyarlathotep /etc >> $NT
    echo nyarlathotep lxc nyarlathotep /lxc >> $NT
    echo nyarlathotep opt nyarlathotep /opt >> $NT
    echo nyarlathotep usr-local nyarlathotep /usr/local >> $NT
    
    ssh bacon.lysator.liu.se ypcat -k auto_home \
     | sort \
     | grep -v DELETE \
     | grep -v membership_expired \
     | grep -v '^ *$' \
     | sed 's/:/ /' \
     | awk '$1 == "mailman" { next }
            $1 == "patrick" { next }
            $1 == "snapshot" { next }
            $1 == "u1" { next }
            $1 == "u2" { next }
            $1 == "u3" { next }
            $1 == "u4" { next }
            $1 == "u5" { next }
            $1 == "u6" { next }
            $1 == "lysdisk1" { next }
            $1 == "lysdisk2" { next }
            $1 == "lysdisk3" { next }
            $1 == "lysdisk4" { next }
            $1 == "lysdisk5" { next }
            $1 == "lysdisk6" { next }
            $1 == "lysdisk7" { next }
            $1 == "lysdisk8" { next }
            $1 == "lysdisk9" { next }
            $1 == "lysdisk10" { next }
            $1 == "lysdisk11" { next }
            $1 == "kheldar" { next }
            $1 == "quota1" { next }
            $1 == "sge" { next }
    	{ print }' \
     | sed 's/^/home /' \
    >> $NT
    
    #ssh stalhein.lysator.liu.se 'cd /home/quota1 && ls -1 | while read d ; do [ -d "$d" ] && [ ! -L "$d" ] && echo "$d" ; done' \
    #| awk '{ print "quota1", $1, "home", "/export/users/quota1/" $1 }' \
    #| sort >> $NT
    
    echo lyskom kom obsession /home/kom >> $NT
    
    echo perlis etc perlis /etc >> $NT
    echo perlis var perlis /var >> $NT
    echo perlis home perlis /home >> $NT
    echo perlis root perlis / >> $NT
    
    echo poseidon var poseidon /var >> $NT
    echo poseidon root poseidon /root >> $NT
    ssh poseidon 'cd /var/repositories && ls -1 | while read d ; do [ -d "$d" ] && [ ! -L "$d" ] && echo "$d" ; done' \
    | grep -v '^snes9x-rediffbackup$' \
    | awk '{ print "lyssvn", $1, "poseidon", "/var/repositories/" $1 }' \
    | sort >> $NT
    
    echo thestral root thestral / >> $NT
    echo thestral opt thestral /opt >> $NT
    echo thestral usr thestral /usr >> $NT
    echo thestral usr-local thestral /usr/local >> $NT
    echo thestral var thestral /var >> $NT
    # The root shell on thestral/ftp is csh, which won't allow escaping
    # of double quotes. Therefore we need _single_ quote around the
    # argument to sh -c.
    ssh thestral "sh -c 'cd /home && ls -1 | while read d ; do [ -d \"\$d\" ] && [ ! -L \"\$d\" ] && echo \$d ; done'" \
    | awk '{ print "thestral-home", $1, "thestral", "/home/" $1 }' \
    | sort >> $NT
    ssh ftp "sh -c 'df | cut -wf6 | grep ^/export/ftp/pub/ | sed \"s|^/export/ftp/pub/||\" | while read d ; do echo \$d \`echo \$d | tr / \|\` ; done'" \
    | awk '$1 == "CentOS" { next }
           $1 == "FreeBSD" { next }
           $1 == "OpenBSD" { next }
           $1 == "archlinux" { next }
           $1 == "debian" { next }
           $1 == "debian-backports" { next }
           $1 == "debian-cd" { next }
           $1 == "debian-security" { next }
           $1 == "epel" { next }
           $1 == "fedora" { next }
           $1 == "manjaro" { next }
           $1 == "monitoring-plugins" { next }
           $1 == "ubuntu" { next }
           $1 == "ubuntu-dvd" { next }
           $1 == "ubuntu-releases" { next }
           { print "ftp-pub", $2, "ftp", "/export/ftp/pub/" $1 }' \
    | sort >> $NT
    #ssh ftp 'bash -c "cd /export/ftp/home && ls -1 | while read d ; do [ -d "\$d" ] && [ ! -L "\$d" ] && echo "\$d" ; done"' \
    #| awk  '{ print "ftp-home", $1, "ftp", "/export/ftp/home/" $1 }' \
    #| sort >> $NT
    
    echo medreg sqldump medreg /var/lib/mysql-dump >> $NT
    
    # Mail
    echo bernadotte var-log bernadotte /var/log >> $NT
    echo bernadotte var-spool-postfix bernadotte /var/spool/postfix >> $NT
    echo bernadotte var-lib-mailman bernadotte /var/lib/mailman >> $NT
    
    ssh bernadotte 'cd /home && ls -1 | while read d ; do [ -d "$d" ] && [ ! -L "$d" ] && echo "$d" ; done' \
    | grep -v DELETE \
    | awk '{ print "mail", $1, "bernadotte", "/home/" $1 }' \
    | sort >> $NT
    
    # lysrdiff.
    echo shafan root shafan / >> $NT
    echo shafan boot shafan /boot >> $NT
    
    # ejabberd
    echo dijkstra root dijkstra / >> $NT
    echo dijkstra boot dijkstra /boot >> $NT
    
    # eureka
    #echo eureka etc eureka /etc >> $NT
    #echo eureka admin eureka /pikedata/eureka-admin >> $NT
    
    #ssh eureka 'cd /pikedata/homes && /bin/ls -1d */* | sed "s%/% %" | while read zone user; do [ -d "$zone/$user" ] && [ ! -L "$zone" ] && [ ! -L "$zone/$user" ] && echo eureka-home $zone--$user eureka /pikedata/homes/$zone/$user ; done ' \
    #| sort >> $NT
    
    #ssh eureka 'cd /pikedata/repositories && /bin/ls -1d */* | sed "s%/% %" | while read vcs proj; do [ -d "$vcs/$proj" ] && [ ! -L "$vcs" ] && [ ! -L "$vcs/$proj" ] && echo eureka-repo $vcs--$proj eureka /pikedata/repositories/$vcs/$proj ; done ' \
    #| sort >> $NT
    
    #ssh eureka 'cd /pikedata/zones && /bin/ls -1d * | while read zone ; do [ -d "$zone" ] && [ ! -L "$zone" ] && echo eureka-etc $zone eureka /pikedata/zones/$zone/root/etc; done' \
    #| sort >> $NT
    
    sort $TASKS > $TASKS.sorted
    sort $NT > $NT.sorted
    diff -u $TASKS.sorted $NT.sorted | grep -v ^@ | grep -v '^ '
    echo -n '[CONFIRM] '
    read line
    mv -f $NT $TASKS