Zum Inhalt springen

DevilDawn

Mitglieder
  • Gesamte Inhalte

    1.107
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von DevilDawn

  1. Soweit ich das sehe, nein. Verifiziert das die Netzmasken korrekt gesetzt sind? Sehen sich die Maschinen auf Layer 2 (arp table ansehen!)?
  2. Soweit Richtig. Wie bestimmt man die Broadcast nun logisch? IP logisch-AND ist die Netzwerkaddresse ---- 172.016.003.032 AND 255.255.000.000 --------------------- 172.016.000.000 = Network Address Dagegen ist OR mit der invertierten Netzmaske die Broadcastadresse ---- 172.016.003.032 -OR- 000.000.255.255 --------------------- 172.016.255.255 = Broadcast Address Noch mal Binär: 10101100.00010000.00000011.00100000 = 172.16.3.32 11111111.11111111.00000000.00000000 = 255.255.0.0 <AND> --------------------------------------- 10101100.00010000.00000000.00000000 = 172.16.0.0 10101100.00010000.00000011.00100000 = 172.16.3.32 00000000.00000000.11111111.11111111 = 0.0.255.255 <OR> --------------------------------------- 10101100.00010000.11111111.11111111 = 172.16.255.255
  3. Keine Zahl zwischen sleeping und seconds? Da sollte der Wert von $CHKINTERVAL stehen. # ./script.sh Starting up.... pinging 192.168.69.1 192.168.69.1 reachable sleeping 30 seconds... /edit: Tipp: Debugmode nutzen. "nohup sh -x ./scriptname.sh &" und dann nohup.out ansehen was schiefläuft...
  4. Das einzige exit im script ist hinter dem shutdown... und das liefert exitcode 0. Wenn das script dahin käme, wär der Rechner schon am runterfahren
  5. Offensichtlich ist das script mit Code 1 beendet worden. Irgendwo ein exit 1 eingefügt? Wenn das Script ohne nohup klappt, sollte es auch mit nohup laufen.
  6. och das macht nohup immer. # nohup ./script.sh & nohup: ignoring input and appending output to `nohup.out' # ps -ef |grep script user 856 820 0 18:50 pts/1 00:00:00 /bin/sh ./script.sh /edit: & vergessen beim start?
  7. Du brauchst dafür keine Schleife. Du zählst deinen Fehlercounter hoch und wann er das Limit erreicht hat erfährst du über einen Test. Pseudocode: while true do if (ping ok) then resette failcounter else zähle failcounter hoch if (failcounter zu hoch) then reboot fi fi sleep xyz done Und die Frage hier ist wo? Dann nutz dies: #!/bin/sh # settings - interval, ip, maxfail, debugflag CHKINTERVAL=30 CHKIP=192.168.x.y MAXFAILS=3 FAILCOUNT=0 DEBUG=1 [ $DEBUG -eq 1 ] && echo Starting up.... # outer loop while true do [ $DEBUG -eq 1 ] && echo pinging $CHKIP # check ping /bin/ping -c1 ${CHKIP} > /dev/null 2>&1 if [ $? -eq 0 ] then # ping success, reset failcount [ $DEBUG -eq 1 ] && echo $CHKIP reachable FAILCOUNT=0 [ $DEBUG -eq 1 ] && echo sleeping $CHKINTERVAL seconds... sleep $CHKINTERVAL else # ping fail, increase failcount let FAILCOUNT=$FAILCOUNT+1 [ $DEBUG -eq 1 ] && echo increased failcount to $FAILCOUNT if [ $FAILCOUNT -ge $MAXFAILS ] then [ $DEBUG -eq 1 ] && echo failed $FAILCOUNT times in a row - shutting down! shutdown -g 1 -y -i 5 exit fi # ping failed, try again in 1 second sleep 1 fi done Bei DEBUG=0 hält das script brav den mund. CHKINTERVAL ist die Zeit die das Script schläft zwischen erfolgreichen pings. Unerfolgreiche Pings werden nach 1 Sekunde wiederholt (ggf. anpassen) Nach 3 konsekutiven Ping fails (hiergeprüft mit -ge - greater or equal) wird runterfgefahren. Numerische vergleiche macht man übrigens mit [ n -eq m ] (equal), "=" vergleicht Zeichenketten. Statt expr ist let imho schöner. HTH, schönen Urlaub
  8. Das Script ruft ping auf (in einer subshell). Ping erreicht entweder die Maschine oder nicht. Wie jedes Kommando gibt ping einen exitcode zurück, wobei 0=alles okay. In Shellscripten kann man per $? auf den Exitcode des letzten Kommandos zurückgreifen. zum Ausdruck [ $? -eq 0 ] empfehle ich "man test" ${CHECKIP} ist einfach eine Variable, die oben im Script via CHECKIP=123.123.123.123 gesetzt wurde.
  9. Sauberes einrücken hilft... #!/bin/sh SLEEPTIME=1 CHECKIP=192.168.99.9 while true do sleep ${SLEEPTIME} # check ping /bin/ping -c1 ${CHECKIP} > /dev/null 2>&1 if [ $? -eq 0 ] then # ping success, exitcode = 0 # do something echo ping success else # ping exitcode != 0, failed # do something else echo ping fail fi done So als Grundlage...
  10. Was steht denn im Maillog? Wenn du an user@example.com gemailt hast, was ergibt (eingaben bold) [B]sendmail -d0.4 -bt[/B] Version 8.xx.x Compiled with: DNSMAP... [....] ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > [B]3,0 user@example.com[/B] Klingt so als wenn die mail loopt.
  11. Das scheint ja nur das initiale Backup zu sein. Wenn im Betrieb nur Änderungen übertragen werden, würde das sicher drastisch weniger sein. Aber was hat das Thema eigentlich unter "Linux + Unix" zu suchen wenn es ein Win2k3 werden soll?
  12. Ich bin da sicher kein Spezialist, aber AFAIK ist das [netlogon] Share für Loginscripte der Benutzer, wenn sie einloggen. Damit ist auch die erste Frage wohl zu beantworten: Die Benutzer sollten ein Script bekommen das Public automatisch mounted. [profiles] ist - auch AFAIK - für roaming profiles Das?
  13. -> Port tcp3128 (or whatever) auf dem LAN Interface in der INPUT chain erlauben -> Im Squid konfigurierte http_safe_ports auf dem externen Interface in der OUTPUT chain erlauben -> DNS (udp53) auf externen Interface in der OUTPUT chain erlauben (Squid macht die Namensauflösung) Antivirenserver proxy beibringen oder der IP des AV-Servers für http/https in der FORWARD chain erlauben -> bootpc/bootps auf dem externen Interface in der INPUT und OUTPUT chain erlauben Dazu generell alles auf loopback erlauben, und natürlich ssh Zugang für die Adminstation nicht vergessen # Default: Nix darf $IPTABLES -P OUTPUT DROP $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP # Pakete mit bekannten State durchlassen $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # loopback erlauben $IPTABLES -A INPUT -i lo -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o lo -m state --state NEW -j ACCEPT # SSH erlauben $IPTABLES -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT # Squid erlauben $IPTABLES -A INPUT -p tcp -m tcp -s 192.168.1.0/24 --dport 3128 -m state --state NEW -j ACCEPT # DNS/http/https nach draussen ok $IPTABLES -A OUTPUT -p tcp -m tcp -m multiport --dports 53,80,443 -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT # Direkt http für fiktiven AV-Server .66 erlauben $IPTABLES -A INPUT -p tcp -m tcp -m multiport -s 192.168.1.66 --dports 80,443 -m state --state NEW -j ACCEPT $IPTABLES -A FORWARD -p tcp -m tcp -m multiport -s 192.168.1.66 --dports 80,443 -m state --state NEW -j ACCEPT So als Ansatz ohne Gewähr.
  14. # perl -e 'setuid(100);' Undefined subroutine &main::setuid called at -e line 1. # perl -MPOSIX -e 'setuid(100);' # aka "use POSIX;"
  15. Wenn dein Script als root läuft wird das script, was es ausruft, auch als root laufen. Soll es als 'frank' laufen, muss dein Script seine Privilegien vorher fallen lassen: my @_userdata = getpwnam('frank'); my $_uid = $_userdata[2]; die("unknown user frank") unless (defined $_uid); setuid($_uid) or die("unable to suid: $!"); HTH
  16. Erstmal würde ich gerne wissen was du unter "das Internet" verstehst, denn über den Squid kommt kein Client "ins Internet" sondern allenfalls ins WWW. Reden wir hier nur über Port 80/443, oder über vollen Internet Zugang mit allen Diensten? Das bedeutet für mich: Die FritzBox hat die offizielle IP und macht Hiding-NAT für 192.168.178.0/24 Nun die Frage was du willst. Sollen alle Maschinen direkt ins Internet kommen? Dann benötigst du forwarding für 192.168.1.0/24 auf die Fritzbox (FORWARD Tabelle) Sollen alle Maschinen via Squid ins WWW kommen? Dann benötigst du Zugang zum Squid-Port (INPUT Tabelle) und Squid muss raus dürfen mit den http safe ports und DNS (OUTPUT Tabelle) zu deinen DNS Servern Insbesondere sollte iptables auch auf dem loopback interface alles erlauben, sonst können andere Dienste stolpern. Mach dir also erst mal eine Tabelle welche Ports/Services von wo nach wo laufen (dürfen). Bekommt dein Linux seine "externe" IP z.b. via DHCP? Dann muss auch DHCP offen sein auf dem Interface. Verteilt dein Linux an die Clients im LAN via DHCP? dann muss DHCP auf dem internen Interface erlaubt sein. usw... Wenn man es etwas bequemer mag (so wie ich ) dann greift man vielleicht zum Firewall Builder
  17. Du möchtest praktisch einen Smarthost. Nicht das ich exim kenne, aber ein schnelles googlen brachte Exim MTA: How do I route or relaying via a smarthost? hervor.
  18. Anmerkung: Wenn dich nur der Statuscode interessierst, reicht ein telnet lufthansa.de 80 [B]HEAD[/B] / HTTP/1.1 Host:lufthansa.de Das grenzt den HTML-Spam ein, es fordert nur den Header an Außerdem verifizieren das dein Server die korrekte IP für lufthansa.de holt: user@server~> getent hosts lufthansa.de 129.35.201.17 lufthansa.de Selbiges auf dem Windows: C:> nslookup lufthansa.de Server: meindns.example.com Address: 192.168.1.254 Nicht autorisierte Antwort: Name: lufthansa.de Address: 129.35.201.17 Wenn die IP passt und du trotzdem 304 bekommst, kann es im Prinzip nur an der Gegenstelle liegen. user@host:~> telnet lufthansa.de 80 Trying 129.35.201.17... Connected to lufthansa.de. Escape character is '^]'. HEAD / HTTP/1.1 Host: lufthansa.de HTTP/1.1 [B][U]301[/U][/B] Server: Lufthansa Proxy Date: Fri, 03 Apr 2009 18:08:54 GMT Location: http://www.lufthansa.com/online/portal/lh/de [...]
  19. -> Platte 1 sollte primary master bleiben und in der Lage sein XP zu booten. -> Platte 2+3+DVDRom beliebig verkabeln. -> Linux installieren. Gängige Distributionen erkennen das XP und partitionieren nur die "anderen" Platten. Sie ändern auch den MBR auf grub, und erlauben dir XP und Linux im Dualboot zu betreiben. Vermutlich werden sie bei Platte 3 davon ausgehen das es zum Windows gehört, willst du sie unter Linux nutzen musst du wahrscheinlich manuell partitionieren. Wie schon erwähnt, FAT32 Datenaustauschplatte brauchst du nicht - unter Linux kannst du die Windows-Laufwerke ganz normal mounten und ansprechen. Eine Datentauschplatte macht somit nur Sinn wenn deine Platte 1 sowas wie eine Full Disk Encryption hat oder bekommen soll.
  20. Shellscript selber beherrscht so etwas nicht, es ist Terminal-Unabhängig. Du könntest schauen ob tput vorhanden ist (gehört auf meinem Linux z.b. zu ncurses), damit geht es. Das macht dein Shellscript dann natürlich von tput abhängig. #!/bin/sh clear echo Dies ist die oberste Zeile read INPUT tput cup 0 5 echo war Dieses Script würde nach einer Eingabe "ist" mit "war" überschreiben. Hope that helps.
  21. Du meinst vermutlich WinSCP. WinSCP :: Timestamps -> "Windows vs. Unix" Kurzum, WinSCP "lügt" dich an, um die Unterschiede zwischen Windows und Unix auszugleichen - ansonsten würde Synchronisation nicht klappen. Das verfälscht logischerweise dann Timestamps der Dateien die auf dem Unix angelegt wurden.
  22. Fehlermeldungen unterdrücken und preg_match auswerten. Ein fehlerhafter regex gibt FALSE zurück. $regex = "/[/"; $result = @preg_match($regex, "String"); if ($result === FALSE) { echo "Error parsing regex $regex\n"; } elseif ($result == 0) { echo "No match\n"; } else { echo "match\n"; } [/php] [code] ~> php test.php Error parsing regex /[/ [/code]
  23. Im Textbereich, also quasi direkt in der Mail (inline halt). Es kann sein das mein cyrus die Mails lediglich so speichert aber nicht ausliefert. Dem würde ich keine Beachtung schenken, \n sollte schon passen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...