#!/bin/bash protocol="ftp" verbose="--no-verbose" #### server one #### remote_host="ftp.ebi.ac.uk" remote_dir="pub/databases/rcsb/pdb-remediated" cut_dirs=4 #### server two #### #remote_host="ftp.wwpdb.org" #remote_dir="pub/pdb" #cut_dirs=2 #### server three #### #remote_host="pdb.protein.osaka-u.ac.jp" #remote_dir="v3/pub/pdb" #cut_dirs=3 #local_dir="/mirror_test/pub/pdb" local_dir="/mirror/pub/pdb" log="/tmp/ftp_mirror.log" lock="/var/run/ftp_mirror" dir_exclude="\ $remote_dir/data/biounit,\ $remote_dir/data/structures/all/XML,\ $remote_dir/data/structures/divided/XML,\ $remote_dir/data/structures/all/XML-extatom,\ $remote_dir/data/structures/all/XML-noatom,\ $remote_dir/data/structures/obsolete/XML\ " #wget_opts="--output-file=$log $verbose --tries=10 --no-clobber --continue --limit-rate=10m --no-host-directories --level=inf --cut-dirs=$cut_dirs --recursive --exclude-directories=$dir_exclude --no-parent" wget_opts="--output-file=$log $verbose --tries=10 --no-clobber --continue --no-host-directories --level=inf --cut-dirs=$cut_dirs --recursive --exclude-directories=$dir_exclude --no-parent --no-remove-listing --reject ls-lR*" error() { echo "Aborting: $1" exit 1 } ## Checking environment [ `hostname` = harris ] || error "the script must be run on harris" /usr/bin/id | grep -q 'uid=0' ; [ $? == 0 ] || error "the script must be run as root" [ -f $lock ] && error "$lock exists - check if ftp_mirror is already running" touch $lock [ -x $local_dir ] || mkdir $local_dir -p wget $wget_opts -P $local_dir $protocol://$remote_host/$remote_dir/ rm -f $lock ## Logging [ -f $log ] && mv $log /var/log/ftp_mirror exit 0