• Flugfisch-Roboter tankt Wasser, fliegt und taucht 21. September 2019
    Ein Roboter, der sich bewegt wie ein fliegender Fisch: Forscher der des Imperial College London haben eine Flugdrohne entwickelt, die in der Lage ist, ihr Antriebsgas aus dem Wasser zu gewinnen und von der Wasseroberfläche aus zu starten. Nach der Auftankphase kann der Flugfisch-Roboter mehrmals bis zu 26 Meter weit fliegen und ins Wasser abtauchen.
Know-how für alle

ubuntu dateien kopieren ohne datumsänderung

Um mit UBUNTU Dateien kopieren ohne Datumsänderung bleibt einem nichts anderes übrig als einen grafischen Dateiexplorer zu nehmen.
Krusader

Dieses KDE Programm ist recht vielseitig und bedarf einer gewissen Gewöhnung. Aber tut was es soll.

Eine zweite alternative auf der Command Shell ist
rsync

  1. Paket installieren
    sudo apt-get install rsync
  2.  Backup Script
    #!/bin/bash
    # Simple backup with rsync
    # local-mode, tossh-mode, fromssh-mode
    
    SOURCES=(/root /etc /home /boot )
    TARGET="/media/backup"
    
    # edit or comment with "#"
    #LISTPACKAGES=listdebianpackages        # local-mode and tossh-mode
    MONTHROTATE=monthrotate                 # use DD instead of YYMMDD
    
    RSYNCCONF=(--delete)
    #MOUNTPOINT="/media/daten"               # check local mountpoint
    #MAILREC="user@domain"
    
    #SSHUSER="sshuser"
    #FROMSSH="fromssh-server"
    #TOSSH="tossh-server"
    SSHPORT=22
    
    ### do not edit ###
    
    MOUNT="/bin/mount"; FGREP="/bin/fgrep"; SSH="/usr/bin/ssh"
    LN="/bin/ln"; ECHO="/bin/echo"; DATE="/bin/date"; RM="/bin/rm"
    DPKG="/usr/bin/dpkg"; AWK="/usr/bin/awk"; MAIL="/usr/bin/mail"
    CUT="/usr/bin/cut"; TR="/usr/bin/tr"; RSYNC="/usr/bin/rsync"
    LAST="last"; INC="--link-dest=$TARGET/$LAST"
    
    LOG=$0.log
    $DATE > $LOG
    
    if [ "${TARGET:${#TARGET}-1:1}" != "/" ]; then
      TARGET=$TARGET/
    fi
    
    if [ "$LISTPACKAGES" ] && [ -z "$FROMSSH" ]; then
      $ECHO "$DPKG --get-selections | $AWK '!/deinstall|purge|hold/'|$CUT -f1 | $TR '\n' ' '" >> $LOG
      $DPKG --get-selections | $AWK '!/deinstall|purge|hold/'|$CUT -f1 |$TR '\n' ' '  >> $LOG  2>&1 
    fi
    
    if [ "$MOUNTPOINT" ]; then
      MOUNTED=$($MOUNT | $FGREP "$MOUNTPOINT");
    fi
    
    if [ -z "$MOUNTPOINT" ] || [ "$MOUNTED" ]; then
      if [ -z "$MONTHROTATE" ]; then
        TODAY=$($DATE +%y%m%d)
      else
        TODAY=$($DATE +%d)
      fi
    
      if [ "$SSHUSER" ] && [ "$SSHPORT" ]; then
        S="$SSH -p $SSHPORT -l $SSHUSER";
      fi
    
      for SOURCE in "${SOURCES[@]}"
        do
          if [ "$S" ] && [ "$FROMSSH" ] && [ -z "$TOSSH" ]; then
            $ECHO "$RSYNC -e \"$S\" -avR \"$FROMSSH:$SOURCE\" ${RSYNCCONF[@]} $TARGET$TODAY $INC"  >> $LOG 
            $RSYNC -e "$S" -avR "$FROMSSH:\"$SOURCE\"" "${RSYNCCONF[@]}" "$TARGET"$TODAY $INC >> $LOG 2>&1 
            if [ $? -ne 0 ]; then
              ERROR=1
            fi 
          fi 
          if [ "$S" ]  && [ "$TOSSH" ] && [ -z "$FROMSSH" ]; then
            $ECHO "$RSYNC -e \"$S\" -avR \"$SOURCE\" ${RSYNCCONF[@]} \"$TOSSH:$TARGET$TODAY\" $INC " >> $LOG
            $RSYNC -e "$S" -avR "$SOURCE" "${RSYNCCONF[@]}" "$TOSSH:\"$TARGET\"$TODAY" $INC >> $LOG 2>&1 
            if [ $? -ne 0 ]; then
              ERROR=1
            fi 
          fi
          if [ -z "$S" ]; then
            $ECHO "$RSYNC -avR \"$SOURCE\" ${RSYNCCONF[@]} $TARGET$TODAY $INC"  >> $LOG 
            $RSYNC -avR "$SOURCE" "${RSYNCCONF[@]}" "$TARGET"$TODAY $INC  >> $LOG 2>&1 
            if [ $? -ne 0 ]; then
              ERROR=1
            fi 
          fi
      done
    
      if [ "$S" ] && [ "$TOSSH" ] && [ -z "$FROMSSH" ]; then
        $ECHO "$SSH -p $SSHPORT -l $SSHUSER $TOSSH $LN -nsf $TARGET$TODAY $TARGET$LAST" >> $LOG  
        $SSH -p $SSHPORT -l $SSHUSER $TOSSH "$LN -nsf \"$TARGET\"$TODAY \"$TARGET\"$LAST" >> $LOG 2>&1
        if [ $? -ne 0 ]; then
          ERROR=1
        fi 
      fi 
      if ( [ "$S" ] && [ "$FROMSSH" ] && [ -z "$TOSSH" ] ) || ( [ -z "$S" ] );  then
        $ECHO "$LN -nsf $TARGET$TODAY $TARGET$LAST" >> $LOG
        $LN -nsf "$TARGET"$TODAY "$TARGET"$LAST  >> $LOG 2>&1 
        if [ $? -ne 0 ]; then
          ERROR=1
        fi 
      fi
    else
      $ECHO "$MOUNTPOINT not mounted" >> $LOG
      ERROR=1
    fi
    $DATE >> $LOG
    if [ -n "$MAILREC" ]; then
      if [ $ERROR ];then
        $MAIL -s "Error Backup $LOG" $MAILREC < $LOG
      else
        $MAIL -s "Backup $LOG" $MAILREC < $LOG
      fi
    fi

Die Datei wird z.B. unter dem Namen /root/backup.sh gesichert. Da die Logdatei unter dem Namen mit selben Anhang und dem Anhang .log (z.B. /root/backup.sh.log) gesichert wird, empfiehlt es sich, eine sprechende Bezeichnung als Programmnamen zu vergeben.

Print Friendly, PDF & Email