„etc/rc.local“ ändern

Überarbeitet.

Jetzt wird die macadresse von 1. Netzwerkgerät für den Namen genommen. 
Muss noch sauber gemacht werden!
This commit is contained in:
Steffen Probst 2021-11-11 13:11:38 +01:00
parent 72c250bcaf
commit f831f85dfd

View File

@ -1,5 +1,4 @@
#!/bin/sh -e
#
#!/usr/bin/env bash
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
@ -11,6 +10,8 @@
#
# By default this script does nothing.
set -e
which chromium-browser > /dev/null && [ -d /etc/chromium ] && mv /etc/chromium/ /etc/chromium-browser
sleep 10
@ -22,18 +23,15 @@ if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
# set hostname
#if [ -f /boot/client-cfg/hostname.txt ]; then
# hostname --file /boot/client-cfg/hostname.txt
#fi
macaddress=$(find /sys/class/net -mindepth 1 -maxdepth 1 ! -name lo -printf "%P: " -execdir cat {}/address \; | cut -f 2 -d ' ')
#Hostname wird anhand des WLAN0 erstell / kann auch entsprechend auf anderes Geraet umgestellt werden
#ip a s wlan1 2&>1 /dev/null ||
#Check einbauen der aktive Verbindung prüft
if [ -d /home/pi ]; then
echo pi$(cat /sys/class/net/wlan0/address | sed s'/://g') > /tmp/hostname && hostname --file /tmp/hostname
echo pi$(echo $macaddress | sed s'/://g') > /tmp/hostname && hostname --file /tmp/hostname
else
echo thin$(cat /sys/class/net/wlan0/address | sed s'/://g') > /tmp/hostname && hostname --file /tmp/hostname
echo thin$(echo $macaddress | sed s'/://g') > /tmp/hostname && hostname --file /tmp/hostname
fi
cp /tmp/hostname /etc/hostname
@ -43,7 +41,7 @@ ip_address="127.0.2.1"
host_name=$(cat /tmp/hostname)
# find existing instances in the host file and save the line numbers
matches_in_hosts="$(grep -n $host_name /etc/hosts | cut -f1 -d:)"
host_entry="${ip_address} ${host_name} ${host_name}.lebenshilfe.local"
host_entry="${ip_address}\ ${host_name}\ ${host_name}.lebenshilfe.local"
echo "Please enter your password if requested."
@ -53,15 +51,13 @@ then
# iterate over the line numbers on which matches were found
while read -r line_number; do
# replace the text of each line with the desired host entry
sudo sed -i '' "${line_number}s/.*/${host_entry} /" /etc/hosts
sed -i ${line_number}s'/.*/${host_entry}/' /etc/hosts
done <<< "$matches_in_hosts"
else
echo "Adding new hosts entry."
echo "$host_entry" | sudo tee -a /etc/hosts > /dev/null
fi
#Fuer eth0, wenn kein WLAN vorhanden ist. Kann dann auskommentiert werden.
#echo rpi$(cat /sys/class/net/eth0/address | sed s'/://g') > /tmp/hostname && hostname --file /tmp/hostname
# set network