-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathremote.sh
More file actions
executable file
·40 lines (30 loc) · 1.19 KB
/
remote.sh
File metadata and controls
executable file
·40 lines (30 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash
#
# Skriptet förutsätter att programmet lftp är installerade, samt att
# användarens ~/.netrc är konfigurerad.
# Domännamn eller IP-adress till FTP-servern:
server='test.antoneliasson.se'
# Skapa fil som kommer att innehålla kommandon att köra
cmdfile=$(mktemp)
# Försök hämta lista med kommandon från servern. Ta bort källfilen (från servern) efter lyckad hämtning.
if (lftp -e "set xfer:clobber true; get -E remote.cmds -o $cmdfile; exit" $server); then
# Skapa loggfil
logfile=$(mktemp)
while read cmd; do
echo "$(date '+[%F %T]') $ $cmd" | tee -a $logfile
bash -c "$cmd" 2>&1 | tee -a $logfile
# echo "Status: $?" | tee -a $logfile # funkar vanligtvis inte
done < $cmdfile
# Kolla klockan för filnamnet
timestamp=$(date '+%Y%m%d_%H%M%S')
# Skicka loggen till servern. Ta bort källfilen (från disk) efter lyckad överföring.
lftp -e "put -E $logfile -o remote-$timestamp.log; exit" $server
# Spara loggen lokalt om den är kvar
if [[ -f $logfile ]]; then
mv $logfile ~/remote-$timestamp.log
fi
fi
# Ta bort kommandofilen
rm $cmdfile
# Återställ variabler
unset server cmdfile logfile