-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.sh
110 lines (97 loc) · 2.29 KB
/
server.sh
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/bin/bash
# Serveradresse, Benutzername und Passwort
source config
# Funktion zum Erstellen einer leeren Datei auf dem Server
upload_file() {
local filename="$1"
echo "Uploading file $filename to server..."
# Überprüfen, ob die Datei im lokalen Verzeichnis vorhanden ist
if [ ! -f "$LOCAL_DIRECTORY/$filename" ]; then
echo "File $filename not found in $LOCAL_DIRECTORY."
exit 1
fi
# Hochladen der Datei auf den Server im Hintergrund
(
echo "open $SERVER_ADDRESS"
echo "user $USERNAME $PASSWORD"
echo "binary"
echo "cd $REMOTE_DIRECTORY"
echo "put $LOCAL_DIRECTORY/$filename"
echo "quit"
) | ftp -n &>/dev/null &
}
# Funktion zum Löschen einer Datei auf dem Server
delete_file() {
local filename="$1"
echo "Deleting file $filename from server..."
# Löschen der Datei auf dem Server
{
echo "open $SERVER_ADDRESS"
echo "user $USERNAME $PASSWORD"
echo "cd $REMOTE_DIRECTORY"
echo "delete $filename"
echo "quit"
} | ftp -n &>/dev/null &
}
# Funktion zum Erzeugen einer Verzögerung von 1 Sekunde
delay() {
echo "Waiting for 3 seconds..."
sleep 3
}
# Funktion zum Starten des Servers
start_server() {
echo "Starting server..."
delete_file "stop"
delay
upload_file "start"
exit 0
}
# Funktion zum Stoppen des Servers
stop_server() {
echo "Stopping server..."
delete_file "start"
delay
upload_file "stop"
exit 0
}
# Funktion zum Neustarten des Servers
restart_server() {
echo "Restarting server..."
delete "start"
delete "stop"
delay
upload_file "restart"
# File will be automatically deleted
}
# Funtion zum initieren aller Dateien
init_script() {
echo "Init Folder and Files"
mkdir -p $LOCAL_DIRECTORY
cd $LOCAL_DIRECTORY
touch start
touch stop
touch restart
}
# Hauptprogramm
case "$1" in
-i|--init)
init_script
;;
-s|--start)
start_server
;;
-t|--stop)
stop_server
;;
-r|--restart)
restart_server
;;
*)
echo "Available commands:"
echo " -i | --init : Initialize folder and files"
echo " --start : Start the server"
echo " --stop : Stop the server"
echo " --restart : Restart the server"
exit 1
esac
exit 0