sed mit Variablen
sed mit Variablen
Ich gruesse euch liebe Community.
Aktuell versuche ich mein E-Mail Template mit Text zu fuellen.
Dabei habe ich den Bereich der ersetzt werden soll mit Text, TEXTHERE genannt, und versuche mit sed das zu ersetzen und abzuenden.
Dabei sieht meine Zeile so aus.
sed -i 's/TEXTHERE/(echo Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)\nBenutzer: $USER\nIP: $ip)/g' /etc/ssh/template.html
Jedoch wird fuer die Variablen nix eingesetzt :/ Habe auch das Manual durchstoebert, und gegoogelt, jedoch bin ich davon nicht schlau geworden.
Wenn ich das so mache, dann werden $hostname etc. nicht ersetzt.
Woran liegt das?
Aktuell versuche ich mein E-Mail Template mit Text zu fuellen.
Dabei habe ich den Bereich der ersetzt werden soll mit Text, TEXTHERE genannt, und versuche mit sed das zu ersetzen und abzuenden.
Dabei sieht meine Zeile so aus.
sed -i 's/TEXTHERE/(echo Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)\nBenutzer: $USER\nIP: $ip)/g' /etc/ssh/template.html
Jedoch wird fuer die Variablen nix eingesetzt :/ Habe auch das Manual durchstoebert, und gegoogelt, jedoch bin ich davon nicht schlau geworden.
Wenn ich das so mache, dann werden $hostname etc. nicht ersetzt.
Woran liegt das?
Re: sed mit Variablen
$(hostname), $(date +%Y-%m-%d) sind keine Variablen. Die Variablen $USER und $ip kannst du in sed benutzen indem du die Singlequotes durch Doublequotes ersetzt:
Hoffe es hilft dir weiter.
Code: Alles auswählen
MYHOSTNAME=$(hostname); DATUM=$(date +%y-%m-%d); ZEIT=$(date +%H:%M); sed -i "s/TEXTHERE/(echo Login auf $MYHOSTNAME am $DATUM um $ZEIT\nBenutzer: $USER\nIP: $ip)/g" /etc/ssh/template.html
Re: sed mit Variablen
Danke! Jetzt habe ich es gerallt.
Habe nun noch eine Frage:
Kann ich es irgendwie hinkriegen, dass ich ein Script als root ausgefuehrt bekomme?
In dem Fall, wenn ein User sich via SSH einloggt, brauche ich sed, und das geht ja nur mit root Rechten
Weiss jemand da weiter?
Habe nun noch eine Frage:
Kann ich es irgendwie hinkriegen, dass ich ein Script als root ausgefuehrt bekomme?
In dem Fall, wenn ein User sich via SSH einloggt, brauche ich sed, und das geht ja nur mit root Rechten
Weiss jemand da weiter?
- Wolf2000
- Beiträge: 52
- Registriert: 08.07.2017 08:19:58
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Re: sed mit Variablen
Hi mit
chmod +x Script.sh
zu ausfüren:
./Script.sh
und mit
cp Script.sh /usr/bin/Script
brauchst du nur Script eingeben
chmod +x Script.sh
zu ausfüren:
./Script.sh
und mit
cp Script.sh /usr/bin/Script
brauchst du nur Script eingeben
Re: sed mit Variablen
Das ist keine gute Idee. Die Systemverzeichnisse überlässt man lieber dem System. Debian-fremdes gehört zum Beispiel nach /opt/ oder /usr/local. Details findest Du im Filesystem Hierarchy Standard: http://refspecs.linuxfoundation.org/FHS ... index.htmlWolf2000 hat geschrieben:30.09.2017 22:35:13und mit
cp Script.sh /usr/bin/Script
brauchst du nur Script eingeben
Der Grund warum Du meinst root-Rechte zu brauchen ist nicht sed, sondern, dass Du versuchst mit sed in ne Datei zu schreiben die in /etc liegt, und deren Berechtigungen wahrscheinlich sagen, dass nur root da reinschreiben darf. Vielleicht wärs ja auch ausreichend Dein Template woandershin zu legen/zu schreiben? Oder den Output von sed direkt an mail zu pipen?
Re: sed mit Variablen
Wie kriege ich es denn hin den Output direkt an mail zu pipen? Waere eigentlich ne prima Idee!
Habs anders loesen koennen.
Ich kopiere die Datei per Script aus /etc/ssh in den Home Ordner, fuehre sed aus, verschicke sie, und loesche sie wieder.
So klappt es 1A
Gibt es ne Moeglichkeit eine Random Nummer zu generieren?
Aktuell heisst die Datei template.html
Waere super wenn ich irgendwie eine Randomzahl mit 6 Stellen einer Variable zuordnen koennte, und diese dann der Dateiname ist, z.B. so
cp /etc/ssh/template.html ~/template*randomzahl*.html
rm ~/template*randomzahl*.html
Habs anders loesen koennen.
Ich kopiere die Datei per Script aus /etc/ssh in den Home Ordner, fuehre sed aus, verschicke sie, und loesche sie wieder.
So klappt es 1A
Gibt es ne Moeglichkeit eine Random Nummer zu generieren?
Aktuell heisst die Datei template.html
Waere super wenn ich irgendwie eine Randomzahl mit 6 Stellen einer Variable zuordnen koennte, und diese dann der Dateiname ist, z.B. so
cp /etc/ssh/template.html ~/template*randomzahl*.html
rm ~/template*randomzahl*.html
Re: sed mit Variablen
Code: Alles auswählen
echo "blup" | sed 's_blup_foo_' | mail -s test empfaenger@example.com
- Wolf2000
- Beiträge: 52
- Registriert: 08.07.2017 08:19:58
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Re: sed mit Variablen
Ich mach es mit meinen Backup so
Code: Alles auswählen
echo "Hallo Wolf2000 es wurde ein Backup vom Teastserver am $DATE erstellt" | mail -s "Backup" wolf2000@debian.at