Ich schrieb Backup-Skript für meinen Computer. Das Backup-Szenario ist wie folgt:Hochladen von Datei auf Google-Laufwerk mit Gdrive funktioniert nicht auf Crontab
ganze Verzeichnisse im Root-Verzeichnis in tar.gz gebunden sind zweimal täglich (03.00 und 00.00), und das Archiv wird hochgeladen werden GDrive App google-Laufwerk. jeden 3.00 Uhr.
und hier ist das Skript
#!/bin/bash
#Program: arklab backup script version 2.0
#Author: namil son
#Last modified date: 160508
#Contact: [email protected]
#It should be executed as a super user
export LANG=en
MD=`date +%m%d`
TIME=`date +%y%m%d_%a_%H`
filename=`date +%y%m%d_%a_%H`.tar.gz
HOST=$HOSTNAME
backuproot="/local_share/backup/"
backup=`cat $backuproot/backup.conf`
gdriveID="blablabla" #This argument should be manually substituted to google-drive directory ID for each server.
#Start a new backup period at January first and June first.
if [ $MD = '0101' -o $MD = '0601' ]; then
mkdir $backuproot/`date +%y%m`
rm -rf $backuproot/`date --date '1 year ago' +%y%m`
echo $backuproot/`date +%y%m` > $backuproot/backup.conf #Save directory name for this period in backup.conf
backup=`cat $backuproot/backup.conf`
gdrive mkdir -p $gdriveID `date +%y%m` > $backup/dir
awk '{print $2}' $backup/dir > dirID
rm -f $backup/dir
fi
#make tar ball
tar -g $backup/snapshot -czpf $backup/$filename/--exclude=/tmp/* --exclude=/mnt/* --exclude=/media/* --exclude=/proc/* --exclude=/lost+found/* --exclude=/sys/* --exclude=/local_share/backup/* --exclude=/home/* \
--exclude=/share/*
#upload backup file using gdrive under the path written in dirID
if [ `date +%H` = '03' ]; then
gdrive upload -p `cat $backup/dirID` $backup/$filename
gdrive upload -p `cat $backup/dirID` $backup/`date --date '15 hour ago' +%y%m%d_%a_%H`.tar.gz
fi
Hier ist das Problem!
Wenn Sie dieses Skript auf Crontab ausführen, funktioniert es ziemlich gut, außer das Hochladen von Teerball auf Google-Laufwerk, obwohl das ganze Skript perfekt funktioniert, wenn Sie das Skript manuell ausführen. Nur der Upload-Prozess funktioniert nicht, wenn es auf Crontab läuft!
Kann mir jemand helfen?
Crontab Eintrag ist wie folgt:
0 3,12 * * * sh /local_share/backup/backup2.0.sh &>> /local_share/backup/backup.sh.log
Welchen Client benutzen Sie? Und wie hast du es installiert? – khrm
Höchstwahrscheinlich benötigt das Skript den vollständigen Pfad für den Befehl 'gdrive'. – fedorqui
Ich benutze gdrive, das hier heruntergeladen werden kann: [github] (https://github.com/prasmussen/gdrive) –