ich bearbeite die Skriptdatei für den Netzwerk-Mount-Point. Wenn die Variable zusammengesetzt ist, enthält sie Informationen, aber wenn sie ausgehängt wird, erscheint sie leer, und wenn das Skript zur Zusammensetzung auffordert, wird der Inhalt der Variable nicht aktualisiert.
VARIABLE=$(df -h | awk '{print $1}'| grep //user@IP/path/user)
Beim Aushängen:
echo $VARIABLE
leer, wenn ich mit dem Befehl einhänge:
open smb://user:passwd@IP/path/user
und tippe df -h | awk '{print $1}' | grep //user@IP/path/user
„seigen“ //user@IP/path/user
, aber wenn ich den Prüfbefehl eingebe, $VARIABLE
scheint „echo“ leer zu sein
Kann mir jemand helfen?
Antwort1
Danke!!! Ich weiß wirklich, dass die dynamische Variable das Problem war. Ich habe es geschafft, eine weitere Variable namens CHECK zu generieren. Mein Code ist nicht schön. Ich wollte, dass Sie zurückgehen, um zu prüfen, ob er gemountet ist, um die Anzahl der Codezeilen zu verringern. Folgen Sie dem Shell-Skript meines Codes
#!/bin/sh
#Thunderbird Backup Script by VPN in MAC OS X
#Variables description
SOURCE=/Users/username/Library/Thunderbird/Profiles/tsg0o7yk.default-release
TARGET=/Volumes/username
MOUNTED=$(df -h | awk '{print $1}' | grep //[email protected]/BackupThunderbird/username)
PATHDST='//[email protected]/BackupThunderbird/username'
SUCCESS='echo "YOUR BACKUP THUNDERBIRD WAS MADE!"'
ERROR='echo "COULD NOT PERFORM THUNDERBIRD BACKUP, CHECK LAN/WAN CONNECTIVITY AND AVALIABILITY OF THE UNIT STORAGE REMOTE STATUS"'
DATE=`date +%d/%m/%Y-%H-%M-%S`
#Connection test, if to fail will connect TunnelBlick
ping -c2 192.168.0.123 > /dev/null
if [ $? -eq 0 ];
then
echo "Connection OK time wait 30s for disconnect mount for test!"
else
echo "Disconected Tunnelblick, wait to connect..."
osascript -e "tell application \"/Applications/Tunnelblick.app\"" -e "connect \"QNAP-MYVPN\"" -e "end tell" #call OpenVPN Tunnelblick MAC OS
sleep 30
fi
backup () {
echo "Please don't disconnect or unmount 192.168.0.123, running proccess backup..."
rsync -rltpDhu $SOURCE/abook.* $TARGET 2> $TARGET/abook.log
rsync -rltpDhu $SOURCE/history.* $TARGET 2> $TARGET/history.log
rsync -rltpDhu --stats --delete-after $SOURCE/ImapMail/email-ssl.com.br $TARGET | mail -s "Report Thunderbird Backup" myemail@provider
sleep 30
$SUCCESS | mail -s "$DATE - VPN Thunderbird Backup" username@localhost -c myemail@provider
diskutil unmount /Volumes/username
}
no_backup () {
echo "BACKUP COULD NOT BE PERFORMED, CONTACT YOUR ADMINISTRATOR"
$ERROR | mail -s "$DATE - ERROR VPN Thunderbird Backup" username@localhost
}
mount_function () {
open smb://username:[email protected]/BackupThunderbird/username # user remote unit storage
sleep 60
}
mounted () {
echo $MOUNTED
if [ $MOUNTED ]
then
echo "Mounted Unit"
backup # call backup function
exit
elif [ !$MOUNTED ]
then
echo "Unmounted Unit, mounting..."
mount_function # call mount function
fi
CHECK=$(df -h | awk '{print $1}' | grep $PATHDST)
echo $CHECK
if [ $CHECK ]
then
backup
echo "Script Verification when successfully"
else
no_backup
echo "Script verification no successfully"
fi
}
mounted
# Tunnelblick disconnecting
echo "Tunnelblick connection disconnecting"
osascript -e "tell application \"/Applications/Tunnelblick.app\"" -e "disconnect \"QNAP-MYVPN\"" -e "end tell"