speakerst
Goto Top

Bash Script soll neue Datei erzeugen

Hallo zusammen, ich benötige mal euren Rat.

Ich möchte in einem Script Parameter eingeben die darauf hin einen Text verfollständigen und diesen in eine neu Datei schreiben

Ich denke dals Beispeil Poste ich mal das Original

Die Original Datei:

cli version 3.20
no terminal telnet
administrator admin password Test
banner "Banner"
clock local default-offset +02:00
clock local dst-rule DST +01:00 from 03:00 oct 31st previous sunday until 02:00 mar 31st previous sunday
dns-client server 10.10.10.10
dns-client server 10.10.10.11
webserver port 80 language en
snmp community public ro
snmp target 10.10.10199 security-name public
snmp host 10.10.10.199 security-name public
snmp host 10.10.10.194 security-name public
snmp host 10.10.10.195 security-name public
sntp-client
sntp-client server primary 10.10.10.254 port 123 version 4
sntp-client server secondary 10.10.10.252 port 123 version 4
sntp-client poll-interval 36000
sntp-client local-clock-offset


Mein Script sieht jetzt folgender Maßen aus:

#!/bin/bash


Eingabe Bereich################
LOG="/var/log/Patton/S0.log"

##Passwot Eingabe####
echo "$(date) - elara PW festlegen" | tee -a $LOG
read Password
echo "DNS1: "$Password

DNS Server######
echo "$(date) - DNS Server 1 festlegen" | tee -a $LOG
read DNS1
echo "DNS1: "$DNS1
echo "$(date) - DNS Server 2 festlegen" | tee -a $LOG
read DNS2
echo "DNS1: "$DNS2

snmp Tarket#######
echo "$(date) - SNMP Target festlegen" | tee -a $LOG
read SNMP1
echo "SNMP Target: "$SNMP
Snmp Host############
echo "$(date) - SNMP Host 1 festlegen" | tee -a $LOG
read SNMPHost1
echo "SNMP Host 1: "$SNMPHost1

echo "$(date) - SNMP Host 1 festlegen" | tee -a $LOG
read SNMPHost2
echo "SNMP Host 1: "$SNMPHost2

echo "$(date) - SNMP Host 3 festlegen" | tee -a $LOG
read SNMPHost3
echo "SNMP Host 1: "$SNMPHost3

NTP##############
echo "$(date) - NTP Host 1 festlegen" | tee -a $LOG
read NTP1
echo "NTP 1: "$NTP1

echo "$(date) - NTP Host 2 festlegen" | tee -a $LOG
read NTP2
echo "NTP 2: "$NTP2

syslog Server
echo "$(date) - Syslog Server festlegen" | tee -a $LOG
read syslog
echo "SYSLOG Server: "$syslog

cli version 3.20
no terminal telnet
administrator elara password $Password
banner "ELARA Leitstellentechnik GmbH"
clock local default-offset +02:00
clock local dst-rule DST +01:00 from 03:00 oct 31st previous sunday until 02:00 mar 31st previous sunday
dns-client server $DNS1
dns-client server $DNS2
webserver port 80 language en
snmp community public ro
snmp target $SNMP security-name public
snmp host $SNMP1 security-name public
snmp host $SNMP2 security-name public
snmp host $SNMP3 security-name public
sntp-client
sntp-client server primary $NTP1 port 123 version 4
sntp-client server secondary $NTP2 port 123 version 4
sntp-client poll-interval 36000
sntp-client local-clock-offset


Jetzt suche ich nach einer Lösung den unteren Teil in eine neue Datei zu schreiben mit den Werten die ich vorher eingegeben habe.

Hat da jemand eine "einfache" Lösung?

Gruß
Stefan

Content-ID: 319388

Url: https://administrator.de/contentid/319388

Ausgedruckt am: 25.11.2024 um 04:11 Uhr

colinardo
colinardo 28.10.2016 aktualisiert um 11:00:49 Uhr
Goto Top
Hallo Stefan,
so was macht man meist mit der "heredoc" Syntax:
http://www.tldp.org/LDP/abs/html/here-docs.html
cat > /pfad/datei.cfg << MYEOFSTRING
Line 1.
Line 2.
Line 3.
MYEOFSTRING
Das Schlüsselwort "MYEOFSTRING" kann frei gewählt werden es muss aber mit dem in der letzten Zeile übereinstimmen damit die Bash weis wo das Ende ist.

Grüße Uwe
timlg07
timlg07 02.11.2016 um 23:21:46 Uhr
Goto Top
Du könntest ja Zeile für Zeile abarbeiten und dann mit dem set Befehl zB das Wort "Banner" durch deine Variable ersetzten lassen. Ist die Datei denn immer die gleiche?
LG Tim