3# Dieses Skript wird nur ein einziges Mal nach einem Upgrade oder der Erstinstallation ausgefuehrt:
8# shellcheck source=opennet/packages/on-core/files/usr/lib/opennet/on-helper.sh
9.
"${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh"
12# packages that should be enabled by default (applied only during the first initialization)
13DEFAULT_ENABLED_PACKAGES=
"on-olsr2"
16# Die Einstellungen "use_olsrd_dns" und "use_olsrd_ntp" sind mit v0.5 hinzugekommen.
17add_default_settings() {
18 prepare_on_uci_settings
19 # erzeuge die services-Node, falls noetig
20 for setting in use_olsrd_dns use_olsrd_ntp;
do
21 [ -n
"$(uci_get "on-core.settings.$setting
")" ] &&
continue
22 uci set
"on-core.settings.$setting=1"
28# cron-Logging abschalten (bis auf Fehlermeldungen)
30disable_cron_logging() {
31 uci set
"system.@system[0].cronloglevel=9"
36# verschiedene dnsmasq-Einstellungen
38 # die Namensaufloesung im Opennet generiert auch 192.168er-Adressen - diese werden durch "rebind_protection" blockiert
39 uci set
"dhcp.@dnsmasq[0].rebind_protection=0"
40 # keine Speicherung von DHCP leases
41 uci set
"dhcp.@dnsmasq[0].quietdhcp=1"
42 # erlaube reverse lookup von 192er und 10er privaten IP Adressen
43 uci set
"dhcp.@dnsmasq[0].boguspriv=0"
48add_crontab_entries() {
49 local crontab_file=/etc/crontabs/root
50 local cron_prefix=
"[ -x /usr/bin/on-function ] && /usr/bin/on-function schedule_parts"
51 local cron_suffix=
"2>&1 | logger -t cron-error"
52 local random_hourly_minute=
53 local random_daily_minute=
54 # Erzeuge unterschiedliche Minuten-Werte (die nicht auf 0 oder 5 enden) für stündliche und
56 while [ -z
"$random_hourly_minute" ] \
57 || echo
"$random_hourly_minute" | grep -q
"[05]$";
do
58 random_hourly_minute=
$(get_random 60)
60 while [ -z
"$random_daily_minute" ] \
61 || [
"$random_hourly_minute" =
"$random_daily_minute" ] \
62 || echo
"$random_daily_minute" | grep -q
"[05]$";
do
63 random_daily_minute=
$(get_random 60)
65 line_in_file
"$crontab_file" '^[^#].*\(schedule\|run\)_parts.*/etc/cron\.minutely' \
66 "* * * * * $cron_prefix /etc/cron.minutely '$cron_suffix' && /usr/bin/on-function run_with_cron_lock run_scheduled_tasks"
67 line_in_file
"$crontab_file" '^[^#].*\(schedule\|run\)_parts.*/etc/cron\.5mins' \
68 "*/5 * * * * $cron_prefix /etc/cron.5mins '$cron_suffix'"
69 line_in_file
"$crontab_file" '^[^#].*\(schedule\|run\)_parts.*/etc/cron\.hourly' \
70 "$random_hourly_minute * * * * $cron_prefix /etc/cron.hourly '$cron_suffix'"
71 line_in_file
"$crontab_file" '^[^#].*\(schedule\|run\)_parts.*/etc/cron\.daily' \
72 "$random_daily_minute $(( $(get_random 3) + 3)) * * * $cron_prefix /etc/cron.daily '$cron_suffix'"
73 # es ist schwer zu pruefen, ob die Datei sich geaendert hat - also einfach neustarten
74 /etc/init.d/cron restart
78set_timezone_berlin() {
79 # "zonename" ist bereits gesetzt? Wert beibehalten ...
80 [ -n
"$(uci_get "system.@system[0].zonename
")" ] &&
return 0
81 # Zone und Verschiebung setzen
82 uci set
"system.@system[0].zonename=Europe/Berlin"
83 uci set
"system.@system[0].timezone=CET-1CEST,M3.5.0,M10.5.0/3"
88enable_firewall_reload_trigger() {
89 local script_path=
"/usr/lib/opennet/events/on-firewall-reload"
91 apply_changes firewall
95enable_default_modules() {
97 # prepare the uci settings for modules
99 for module in $DEFAULT_ENABLED_PACKAGES;
do
105reduce_uhttpd_requests() {
106 if uci show uhttpd >/dev/
null 2>&1 && [
"$(get_memory_size)" -le 32 ]; then
107 uci set
"uhttpd.main.max_requests=1"
119enable_firewall_reload_trigger
120enable_default_modules
121reduce_uhttpd_requests
save_on_modules_list()
Speichere die aktuelle Liste der installierten opennet-Module in der uci-Konfiguration.
enable_on_module(module)
Aktiviere ein Opennet-Modul.
create_uci_section_if_missing()
Prüfe, ob eine definierte UCI-Sektion existiert und lege sie andernfalls an.
set eu grep root::etc shadow exit if command v chpasswd dev null