Just a sample of the Echomail archive
Cooperative anarchy at its finest, still active today. Darkrealms is the Zone 1 Hub.
|    TUXPOWER    |    Advocacy for the Linux operating system    |    1,237 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 606 of 1,237    |
|    john ford to All    |
|    Backup script    |
|    22 Feb 20 12:41:43    |
   
   TID: Mystic BBS 1.12 A45   
   MSGID: 3:770/100 75cbbdc0   
   TZUTC: 1300   
   Backup script i made in bash, uses bash to config the bash script, dirty   
   subarray trick   
      
   script:   
   #!/usr/local/bin/bash   
   #settings   
   DATE=$(date "+%m_%d_%y_%H:%M")   
   source ~/.backuprc   
   set -euf -o pipefail   
      
   help="$0 {zfs|rsync} {job}"   
      
   backup_rsync( )   
   {   
    tobed=$(eval echo \${"${rsync[$2]}"["source"]})   
    dest=$(eval echo \${"${rsync[$2]}"["destination"]})   
    location=$(eval echo \${"${rsync[$2]}"["location"]})   
    excludes=$(eval echo \${"${rsync[$2]}"["exclude_file"]})   
    basicflags=$(eval echo \${"${rsync[$2]}"["flags"]})   
    if [ "$location" == "local" ]   
    then   
    destination=${locations["$2"]}   
    flags="$basicflags"   
    else   
    if [ "$location" == "ssh" ]   
    then   
    sshinfo=$(eval echo \${"${rsync[$2]}"["ssh"]})   
    server=$(eval echo \${"$sshinfo"["user_server"]})   
    identfile=$(eval echo \${"$sshinfo"["identity"]})   
    sshport=$(eval echo \${"$sshinfo"["port"]})   
    dest="$server:$dest"   
    flags="$basicflags -e 'ssh -i $identfile -p $sshport'"   
    fi   
    fi   
    if [[ $excludes != 0 ]]   
    then   
    flags="$flags --exclude-from=$excludes"   
    fi   
    if [[ $(eval echo \${"${rsync[$2]}"["delete"]}) != 0 ]]   
    then   
    flags="$flags --delete"   
    fi   
    eval "rsync $flags $tobed $dest"   
   }   
      
   backup_zfs( )   
   {   
    tobed=$(eval echo \${"${zfs[$2]}"["source"]})   
    destination=$(eval echo \${"${zfs[$2]}"["destination"]})   
    location=$(eval echo \${"${zfs[$2]}"["location"]})   
    recflags=$(eval echo \${"${zfs[$2]}"["recvflags"]})   
    destroyflags=$(eval echo \${"${zfs[$2]}"["destroyflags"]})   
    sendflags=$(eval echo \${"${zfs[$2]}"["sendflags"]})   
    snapflags=$(eval echo \${"${zfs[$2]}"["snapflags"]})   
    incremental=$(eval echo \${"${zfs[$2]}"["incremental"]})   
    echo $incremental   
    checkdest="zfs list $destination"   
    if [ "$location" == "local" ]   
    then   
    receiver="zfs receive $recflags"   
    destroyer="zfs destroy $destroyflags"   
    else   
    if [ "$location" == "ssh" ]   
    then   
    sshinfo=$(eval echo \${"${zfs[$2]}"["ssh"]})   
    identfile=$(eval echo \${"$sshinfo"["identity"]})   
    userserver=$(eval echo \${"$sshinfo"["user_server"]})   
    sshport=$(eval echo \${"$sshinfo"["port"]})   
    sshline="ssh -t $userserver -i $identfile -p $sshport"   
    receiver="$sshline zfs receive $recflags"   
    destroyer="$sshline zfs destroy $destroyflags"   
    checkdest="$sshline $checkdest"   
    fi   
    fi   
    eval "zfs snapshot $snapflags $tobed@$DATE"   
      
    if [ "$incremental" == "yes" ]   
    then   
    if eval "$checkdest" && eval "ls ~/.$2.zfs.lastsnap"   
    then   
    lastsnap=$(cat ~/."$2".zfs.lastsnap)   
    sendflags="$sendflags -i $tobed$lastsnap"   
    #echo $sendflags   
    fi   
    echo "@$DATE" > ~/."$2".zfs.lastsnap   
    else   
    eval "$destroyer $destination"   
    fi   
    sleep 5   
    eval "zfs send $sendflags $tobed@$DATE | $receiver $destination"   
   }   
      
   if [ $# == 0 ]   
   then   
    echo "$help"   
    exit   
   else   
    case $1 in   
    rsync)   
    backup_rsync "$@"   
    exit   
    ;;   
    zfs)   
    backup_zfs "$@"   
    exit   
    ;;   
    *)   
    echo "$help"   
    exit   
    ;;   
    esac   
   fi   
      
   The "config"   
   DELETE=1   
   HOMEDIR=/usr/home/mouse/   
   HOMEZFS="mouser/usr/home/mouse"   
   HOMEEXCLUDE="/usr/home/mouse/.rsync_excludes"   
   GLOBALEXCLUDE="/usr/home/mouse/.rsync_global_excludes"   
   DEFAULTSERVER="192.168.1.138"   
   DEFAULTUSER="mouse"   
      
   declare -A home_ssh=(   
   ["user_server"]="$DEFAULTUSER@$DEFAULTSERVER"   
   ["port"]="1478"   
   ["identity"]="~/.ssh/id_rsa_home"   
   )   
      
   declare -A ssh=(   
   ["home"]=home_ssh   
   )   
      
   declare -A full_rsync=(   
   ["delete"]=0   
   ["source"]="/"   
   ["flags"]="-avP"   
   ["destination"]="/suplbup/laptop/"   
   ["exclude_file"]=$GLOBALEXCLUDE   
   ["location"]="local"   
   )   
      
   declare -A fullssh_rsync=(   
   ["delete"]=1   
   ["source"]="/"   
   ["flags"]="-avP"   
   ["destination"]="/massdata/laptop/"   
   ["exclude_file"]=$GLOBALEXCLUDE   
   ["location"]="ssh"   
   ["ssh"]=home_ssh   
   )   
      
   declare -A home_rsync=(   
   ["delete"]=1   
   ["source"]=$HOMEDIR   
   ["flags"]="-avP"   
   ["destination"]="/suplbup/laptop-home/"   
   ["exclude_file"]=$HOMEEXCLUDE   
   ["location"]="local"   
   )   
      
   declare -A music_rsync=(   
   ["delete"]=0   
   ["source"]="/usr/home/mouse/music/"   
   ["flags"]="-avP"   
   ["destination"]="/home/mouse/Music/"   
   ["exclude_file"]=$HOMEEXCLUDE   
   ["location"]="ssh"   
   ["ssh"]=home_ssh   
   )   
   declare -A freenet_rsync=(   
   ["delete"]=0   
   ["source"]="/usr/home/mouse/Freenet/"   
   ["flags"]="-avP"   
   ["destination"]="/home/mouse/Freenet/"   
   ["exclude_file"]=$HOMEEXCLUDE   
   ["location"]="ssh"   
   ["ssh"]=home_ssh   
   )   
      
   declare -A homessh_rsync=(   
   ["delete"]=1   
   ["source"]=$HOMEDIR   
   ["flags"]="-avP"   
   ["destination"]="/massdata/laptop-home/"   
   ["exclude_file"]=$HOMEEXCLUDE   
   ["location"]="ssh"   
   ["ssh"]=home_ssh   
   )   
      
   declare -A homessh_zfs=(   
   ["source"]=$HOMEZFS   
   ["recvflags"]=""   
   ["snapflags"]="-r"   
   ["destroyflags"]="-r"   
   ["sendflags"]="-v -R"   
   ["destination"]="imagine/test"   
   ["location"]="ssh"   
   ["incremental"]="yes"   
   ["ssh"]=home_ssh   
   )   
      
   declare -A home_zfs=(   
   ["source"]=$HOMEZFS   
   ["recvflags"]=""   
   ["snapflags"]="-r"   
   ["destroyflags"]="-r"   
   ["sendflags"]="-v -R"   
   ["destination"]="suplbup/rescuehome"   
   ["location"]="local"   
   ["incremental"]="yes"   
   )   
      
   declare -A full_zfs=(   
   ["source"]=mouser   
   ["recvflags"]=""   
   ["snapflags"]="-r"   
   ["destroyflags"]="-r"   
   ["sendflags"]="-v -R"   
   ["destination"]="suplbup/rescue"   
   ["location"]="local"   
   ["incremental"]="yes"   
   )   
   declare -A fullssh_zfs=(   
   ["source"]=$HOMEZFS   
   ["recvflags"]=""   
   ["snapflags"]="-r"   
   ["destroyflags"]="-r"   
   ["sendflags"]="-v -R"   
   ["destination"]="imagine/test"   
   ["location"]="ssh"   
   ["incremental"]="yes"   
   ["ssh"]=home_ssh   
   )   
      
   declare -A zfs=(   
   ["full"]=full_zfs   
   ["full_ssh"]=fullssh_zfs   
   ["home"]=home_zfs   
   ["home_ssh"]=homessh_zfs   
   )   
      
   declare -A rsync=(   
   ["music"]=music_rsync   
   ["freenet"]=freenet_rsync   
   ["full"]=full_rsync   
   ["full_ssh"]=fullssh_rsync   
   ["home"]=home_rsync   
   ["home_ssh"]=homessh_rsync   
   )   
      
   --- Mystic BBS v1.12 A45 2020/02/18 (Windows/32)   
    * Origin: Agency BBS | Dunedin, New Zealand | agency.bbs.nz (3:770/100)   
   SEEN-BY: 1/123 57/0 90/1 153/250 154/10 203/0 220/70 221/0 227/114   
   SEEN-BY: 229/426 1014 240/5832 249/206 317 400 250/3 267/800 280/464   
   SEEN-BY: 280/5003 288/100 310/31 317/3 322/757 340/1000 342/200 396/45   
   SEEN-BY: 712/848 770/0 1 100 340 772/0 1 500 2452/250   
   PATH: 770/100 1 280/464 229/426   
      
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca