Archiv verlassen und diese Seite im Standarddesign anzeigen : kleines Shell Script (openvpn Menü)
Servus,
ich suche/brauche ein kleines Skript das mir ein Auswahlmenü bietet:
1) Vpn 1
2) Vpn 2
...
und dann halt
/usr/sbin/openvpn /pfad/zum/gewählten/ovpn
aüsführt. Bis hier her sollte für jmnd der die Sprache beherrscht kein Problem sein.
Jetzt habe ich aber irgendwomal aufgeschnappt das man auch kien Bn/pw eingeben muss bzw. man das in stdin oder so speichern kann.
Bn & Pw bei allen VPNs gleich.
Jetzt wollte ich mal ganz ganz lieeppppp fragen ob mir das jmnd mal schnell programmieren kann. Ich kann diese Sprache absolut nicht und habe letztes mal für ein 4 Zeilen Mini-Skript über nen Tag gebraucht...
Wäre echt nett :-)
Vielen Dank im vorraus.
Eigentlich ist das Forum dazu gedacht, um Hilfe zu leisten bei Problemen mit der Programmierarbeit (Heißt also die Leute probieren es selber)
Für Programmieraufträge ist das Job-Forum vorhanden.
(Wobei zugegebenermaßen es nur ein kleines Script ist dass du willst ;) )
Es sollte für dich schon möglich sein wenn du dir "man bash" in einem Terminal aufmachst und bei den "shell builtin commands" den Befehl "read" ansiehst, dass
selber zu basteln.
(echo für Ausgabe, read für einlesen von STDIN)
Aber du hast Glück und ich komme gerade von einem Geburtstag von daher
hier eine Minimalversion, auf die du dann selbst aufbauen kannst.
#!/bin/bash
#VPNBIN muss entsprechend angepasst werden "which openvpn"
VPNBIN="/usr/bin/openvpn";
#Menü
echo "Welche VPN Verbindung soll aufesetzt werden?";
echo "1) VPN 1"
echo "2) VPN 2"
#von STDIN lesen und in CHOICE speichern
read CHOICE
#Pfad nach Auswahl setzen
if [ $CHOICE -eq 1 ]; then
VPNCONF="PFAD1";
else
VPNCONF="PFAD2";
fi;
#openvpn aufruf mit entsprechendem Pfad
$VPNBIN $VPNCONF;
Wie das mit Bn (Was ist damit gemeint) und Pw zu machen ist musst du selber recherchieren oder mir gut erklären was du willst ;)
Eigentlich ist das Forum dazu gedacht, um Hilfe zu leisten bei Problemen mit der Programmierarbeit (Heißt also die Leute probieren es selber)
Für Programmieraufträge ist das Job-Forum vorhanden.
(Wobei zugegebenermaßen es nur ein kleines Script ist dass du willst ;) )
Es sollte für dich schon möglich sein wenn du dir "man bash" in einem Terminal aufmachst und bei den "shell builtin commands" den Befehl "read" ansiehst, dass
selber zu basteln.
(echo für Ausgabe, read für einlesen von STDIN)
Aber du hast Glück und ich komme gerade von einem Geburtstag von daher
hier eine Minimalversion, auf die du dann selbst aufbauen kannst.
#!/bin/bash
#VPNBIN muss entsprechend angepasst werden "which openvpn"
VPNBIN="/usr/bin/openvpn";
#Menü
echo "Welche VPN Verbindung soll aufesetzt werden?";
echo "1) VPN 1"
echo "2) VPN 2"
#von STDIN lesen und in CHOICE speichern
read CHOICE
#Pfad nach Auswahl setzen
if [ $CHOICE -eq 1 ]; then
VPNCONF="PFAD1";
else
VPNCONF="PFAD2";
fi;
#openvpn aufruf mit entsprechendem Pfad
$VPNBIN $VPNCONF;
Wie das mit Bn (Was ist damit gemeint) und Pw zu machen ist musst du selber recherchieren oder mir gut erklären was du willst ;)
Hi,
erstmal vorn weg : Vielen Dank :-)
Ich weiss das man hier eigentlich nicht nach Skripts usw fragt sondern nur Hilfe bei Problem sucht ;-)
Ich programmiere sehr gerne und probier normal alles aus, aber diese Skriptsprache geht mir einfach net in Kopf, liegt mir absolut nicht, daher hab ich mir gedacht 'fragst mal nach' :-)
Bn ist der Benutzername ;-)
Und haste evtl. nen Tipp wie ich das machen kann das ich weder Benutzernamen noch Passwort bei der VPN Verbindung eingeben muss ?
Ich habe mal irgendwo sowas aufgeschnappt das man das in stdin oder so legen kann (Sorry wenn das jetzt totaler Mist ist was ich schreibe).
Hab keine Lust immer Bneutzername [Enter] Passwort[Enter] einzugeben...
Gruß und nochmals vielen Dank
Hi,
erstmal vorn weg : Vielen Dank :-)
Kein Problem :)
Bn ist der Benutzername ;-)
Autsch - ja manchmal ist man so aufs englische getrimmt, dass man es nicht schnallt wenn jemand etwas deutsches abkürzt ;)
Ich gugg mir das morgen nochmal genauer an.
Muss ich beim Menü das dann so machen:
#Pfad nach Auswahl setzen
if [ $CHOICE -eq 1 ]; then
VPNCONF="PFAD1";
fi;
if [ $CHOICE -eq 2 ]; then
VPNCONF="PFAD2";
fi;
Naja so wie es jetzt ist(Damit meine ich meine Version) würde es alles was nicht 1 ist als Auswahl 2 werten.
Bei dir muss man "1" oder "2" tippen, da man sonst openvpn ohne parameter aufruft. (Man könnte den $VPNCONF Pfad
natürlich als Default irgendwo auf die Konfiguration 1 setzen und dann nur prüfen ob die Eingabe "2" war aber die Möglichkeiten sind
ja sowieso recht groß wie man das genau machen will)
Anstatt 2 if nacheinander wäre es noch mit "elif" möglich.
Und haste evtl. nen Tipp wie ich das machen kann das ich weder Benutzernamen noch Passwort bei der VPN Verbindung eingeben muss ?
Ich habe mal irgendwo sowas aufgeschnappt das man das in stdin oder so legen kann (Sorry wenn das jetzt totaler Mist ist was ich schreibe).
Hab keine Lust immer Bneutzername [Enter] Passwort[Enter] einzugeben...
Meine erste Idee wäre nun den Aufruf von openvpn so zu gestalten.
echo -e "Benutzername\nPasswort" | $VPNBIN $VPNCONF
"-e" bewirkt das interpretieren von escape Zeichen("\n" zB.)
das "|" ist eine sogenannte PIPE und leitet die Ausgabe von echo
als Eingabe (STDIN) "in" openvpn.
Aber es ist halt (wie du sicher weißt) unschön Passwort & Benutzername Plaintext in einer Datei zu haben ;)
Aber es ist halt (wie du sicher weißt) unschön Passwort & Benutzername Plaintext in einer Datei zu haben ;)
Hehe ja, aber ich habe auch keine Lust immer Bn/Pw einzugeben ;-) Daher gehe ich das unschöne Risiko ein ;)... wenn es funktionieren würde :(
Habe es wie die es geschrieben hast eingetragen:
echo -e "meinname\nmeinpw" | $VPNBIN "$VPNCONF"
doch ich werde immer noch nahc einem Benutzername sowie Passwort gefragt :/
Das mit dem if/else habe ich eine case gelegt und alle anderen Tasten mit *) abgefangen.
Habe mich gerade mal wieder mit openvpn beschäftigt (mein letztes setup liegt nun auch schon 1-2 Jahre ind er Vergangenheit)
Ich habe damals über "auth-user-pass filename" in der client.conf eine Datei eingebunden in der
alamar
alamarspw
stand.
Vielleicht wäre das einfacher als zu überlegen wie man die Username/Password Eingabe über STDIN ins Programm schleußt.
Hm irgendwie funzt das nicht
/usr/bin/tunnel: line 35: VPNCONF/home/Alpha2/.vpnProfile/VPN1.ovpn: Datei oder Verzeichnis nicht gefunden
Options error: In [CMD-LINE]:1: Error opening configuration file:
Use --help for more information.
und das habe ich in der VPN1.ovpn geändert :
von auth-user-pass
zu auth-user-pass /home/fischbrei/.vpnProfile/passfile
Ich glaube du meintest eher eine config von openvpn client gell ?
Die habe ich nicht gefunden :/ Wo sollte die den sein ?
Ich meine die Konfiguration des Clients ich dachte das ganze Script würde darauf abzielen openvpn mit verschiedenen Konfigurationen automagisch starten zu lassen. Normalerweise liegen die Konfigurationsdateien in /etc/openvpn aber die kann man Ansich ablegen wo man will.
Ich meine die Konfiguration des Clients ich dachte das ganze Script würde darauf abzielen openvpn mit verschiedenen Konfigurationen automagisch starten zu lassen. Normalerweise liegen die Konfigurationsdateien in /etc/openvpn aber die kann man Ansich ablegen wo man will.
Das ist ja das komische ist, das Verzeichnis ist leer (also /etc/openvpn/). Ich finde keine config-Datei für openvpn :(
whereis openvpn :
openvpn: /usr/sbin/openvpn /etc/openvpn /usr/lib/openvpn /usr/local/sbin/openvpn /usr/share/openvpn /usr/share/man/man8/openvpn.8.gz
PS: Soll ich nen neune Thread auf machen ?
Ja du kannst wegen openvpn ein Thema in "Konfiguration & Wartung" erstellen und wenn noch Probleme bei dem Scritp auftauchen hier weiterfragen.
:)
Ja du kannst wegen openvpn ein Thema in "Konfiguration & Wartung" erstellen und wenn noch Probleme bei dem Scritp auftauchen hier weiterfragen.
:)
Habe ich gemacht, weiss aber net ob das klappt bzw möglich ist :)
Ist dir evtl nicht irgendwie/irgendwas/irgendwo aufgefallen warum das mit dem Inputumleiten nicht funktioniert ?
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.