connection keep alive for Linux

Συζητήσεις σχετικά με θέματα που αφορούν το networking και ευρυζωνικές συνδέσεις, providers, τηλεφωνικά δίκτυα, δίκτυα κινητής κτλ.
User avatar
Sreak
Venus Project Founder
Venus Project Founder
Posts: 956
Joined: Fri Apr 02, 2004 9:56 am
Academic status: PhD
Location: eltrun.gr

connection keep alive for Linux

Post by Sreak » Sat Sep 04, 2004 9:30 pm

Το γνωστό πρόβλημα με τη σύνδεση της σχολής. Με τα XP είχα το connection keep alive απο το norton και έκανα τη δουλειά μου. Τώρα με το linux??? Μια λύση που δουλεύει είναι ότι έχω βάλει να κάνει έλεγχο mail κάθε 1 λεπτό. Καμιά άλλη λύση?
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Sun Sep 05, 2004 12:07 am

Φτιάξε κανένα prog (σε c-shell) που να κάνει ping κάθε ένα λεπτό κάπου. Πολύ απλό και πολύ ελαφρύ!
[Better to understand a little than to misunderstand a lot]
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Sep 05, 2004 5:06 am

Η λύση του Νεκτάριου είναι σίγουρα αποδεκτή αλλά εάν το disconnection γίνεται απο το επίπεδο 2(DLL) τότε μπορείς και χωρίς script. Πιο συγκεκριμένα:

Εάν ο server της σχολής σε αποσυνδέει κοιτάζοντας το επίπεδο 2(DLL - PPP), τότε αυτό που κάνει είναι απλά να κοιτάει το PPP εάν δέχεται frames(LCP/NCP frames) και εάν περάσει ένα χρονικό διάστημα και δεν έχει λάβει κανένα πλαίσιο(ή αριθμό πλαισίων) τότε τρώς disconnect. Σε αυτήν την περίπτωση πειράζεις το PPP σου ώστε να του στέλνει ανά τακτά χρονικά διαστήματα μερικά LCP echo request frames ώστε να διατηρεί το connection alive. Για να το κάνεις αυτό κάνεις edit το /etc/ppp/options(στο Mandrake δεν ξέρω εάν είναι σε αυτό το path) και τοποθετείς μέσα στο αρχείο την γραμμή lcp-echo-interval n. To n είναι κάθε πόσα sec θα στέλενει τα frames αυτά.

Τώρα εάν σε αποσυνδέει κοιτάζοντας στο επίπεδο 3(IP). Τότε το παραπάνω δεν θα δουλέψει μιας και θα περιμένει κάποιο ip datagram να φτάσει(περάσει) απο αυτόν. Σε αυτήν την περίπτωση κάνεις το παραπάνω(ping) το οποίο απλά στέλνει ICMP datagrams(κοινώς πακέτα επιπέδου 3 - οπότε είσαι καλυμένος).
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Sun Sep 05, 2004 1:08 pm

Πολύ καλό! Δεν το είχα σκεφτεί!
Δοκίμασε πρώτα sreak αν θα δουλέψει η λύση επιπέδου 2, και αν όχι τότε ανέβα ένα επίπεδo :-D
HdkiLLeR wrote:στο Mandrake δεν ξέρω εάν είναι σε αυτό το path
Αυτό είναι
[Better to understand a little than to misunderstand a lot]
User avatar
Sreak
Venus Project Founder
Venus Project Founder
Posts: 956
Joined: Fri Apr 02, 2004 9:56 am
Academic status: PhD
Location: eltrun.gr

Post by Sreak » Sun Sep 05, 2004 3:18 pm

Τελικά δεν δούλεψε σε επίπεδο 2 όμως δούλεψε σε επίπεδο 3 :)
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Sep 05, 2004 4:30 pm

Για να αυτοματοποιήσεις την διαδικασία γράψε ένα script το οποίο να κάνει ένα ping ανά 1 min, κάντο executable και βάλτο στο /etc/ppp/ip-up.d/(πάλι δεν ξέρω εάν είναι αυτό το path στην Mandrake). Μετά απο κάθε σήκωμα του PPP θα τρέχει το script απο μόνο του οπότε δεν θα χρειάζεται να το τρέχεις με το χέρι :)...Αντίστοιχα μπορείς να προσθέσεις και ένα script τερματισμού του πρώτου στο /etc/ppp/ip-down.d/ ώστε μόλις κλείνεις την σύνδεση να σταματάει(kill -9?) το πρώτο scirpt που κάνει συνέχεια ping.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
Sreak
Venus Project Founder
Venus Project Founder
Posts: 956
Joined: Fri Apr 02, 2004 9:56 am
Academic status: PhD
Location: eltrun.gr

Post by Sreak » Sun Sep 05, 2004 6:15 pm

Οκ όλλα αλλά πως θα βρίσκω στο script το id της διεργασίας για να τη σκοτώσω?Χρειάζεται να κάνω μέσα στο script την εντολή ps, να βρω το όνομα του script και μετά να βρω το πρώτο πεδίο της ίδιας σειράς που είναι το pid της?
Υπάρχει κάποιος τρόπος να δουλεύει κατευθείαν με το όνομα??
Μέχρι στιγμής πάντως όλα δουλεύουν χαρτι :)
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Sep 05, 2004 6:55 pm

Τς τς τς...

Code: Select all

#!/bin/csh

set name = "script's name"
set pid = `ps aux | grep $name | cut -d" " -f8`

kill -9 $pid
Το script's name αντικατέστησε το με το όνομα του script. Αντίστοιχα μπορείς και με /bin/bash script, awk και perl. Διαλέγεις.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
Sreak
Venus Project Founder
Venus Project Founder
Posts: 956
Joined: Fri Apr 02, 2004 9:56 am
Academic status: PhD
Location: eltrun.gr

Post by Sreak » Sun Sep 05, 2004 10:13 pm

Ξέρεις τι γίνεται, το script δούλευε μια χαρά αν το έτρεχα χειροκίνητα, το εβαλα στο /etc/ppp/ip-up.d και συμβαίνουν τα εξής.
Πριν μπω στο internet και τρέξω ps aux | grep connectionKeepAlive δεν έχω κάποιο αποτέλεσμα(λογικό).
Αν μπω internet και τρέξω ακριβώς το ίδιο βγάζει:
root 3753 ktl ktl με όνομα διεργασίας grep connectionKeepAlive
Στην ουσία δηλαδή δεν τρέχει το script μιας και με πετάει απο το ίντερνετ

Εντάξει δεν είναι και μέγιστο πρόβλημα μιας και δεν είναι τίποτα να το τρέχω και με το χέρι αλλά κουβέντα κάνουμε :)
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Sun Sep 05, 2004 10:35 pm

Περνώντας αρκετή ώρα για να βγάλω ένα νόημα από το post σου( :-D ) θέλω να σε ρωτήσω:
Πριν μπεις στο inet δεν τρέχει το script με το ping, έτσι?
Αφού μπεις, τρέχει το script με το ping, αφού σου βγάζει αποτέλεσμα το

Code: Select all

ps aux | grep $name | cut -d" " -f8
έτσι?

Ποιο script δεν τρέχει, όταν είσαι συνδεδεμένος?
[Better to understand a little than to misunderstand a lot]
User avatar
Sreak
Venus Project Founder
Venus Project Founder
Posts: 956
Joined: Fri Apr 02, 2004 9:56 am
Academic status: PhD
Location: eltrun.gr

Post by Sreak » Mon Sep 06, 2004 12:26 am

Einherjar wrote:Περνώντας αρκετή ώρα για να βγάλω ένα νόημα από το post σου(
Αν τα κάναμε όλα εύκολα, τί θα είχε αξία? :roll:

Λοιπόν πριν μπω στο ιντερνετ δεν έχω τρέξει κανένα script και πράγματι αυτό φαίνεται και από το αποτέλεσμα της εντόλης: ps aux | grep connectionKeepAlive
που είναι κενό.
Όταν μπω στο ίντερνετ και εκτελέσω την ίδια εντολή μου βγάζει σαν αποτέλεσμα μια διεργασία που το όνομα της είναι "grep connectionKeepAlive" προσοχή μαζί με το grep
Στην πραγματικότητα δεν λειτουργέι το script μιας και με πετάει από το ίντερνετ μετά από λίγο.
Α ξέχασα να σου πω πως αν μετα κάνω(πριν με πετάξει από το ίντερνετ) "ps aux" δεν βρίσκω κάπου την connectionKeepAlive.

Πράγματι καταλαβαίνω πως γράφω κάπως περίεργα αλλά δεν μπορώ να κάνω κάτι άλλο :cry: βρε λες να έχω πρόβλημα????
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Mon Sep 06, 2004 1:46 am

Ναι οκ το έπιασα :). Βασικά δεν τρέχει το script!. Wow και γ**ώ τις διαπιστώσεις έτσι ; Net πως μπαίνεις;
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
vagalati
Mbyte level
Mbyte level
Posts: 579
Joined: Tue Mar 16, 2004 2:46 pm
Location: 7000 miles away from aueb

Post by vagalati » Sun Sep 12, 2004 2:16 pm

Τώρα σχετικά με το script δεν σου τρέχει γιατί προφανώς μπαίνεις μέσα με το kppp. Το kppp βάζει δικές του παραμέτρους στο ppp και αγνοεί τις ρυθμίσεις που έχεις περάσει εσύ στο ppp. Έχει όμως ένα tab στις ρυθμίσεις που μπορείς να του πείς να εκτελέσει ένα πρόγραμμα μόλις βρεθείς online και ένα άλλο μόλις αποσυνδεθείς. Στο πρώτο βάζεις το scriptάκι σου και στο δεύτερο ένα άλλο script που έχει την εντολή 'killall -9 connectionKeepAlive'
Ni!! Ni!! Ni!!
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Sep 12, 2004 2:22 pm

Slack και killall δεν πάει ρε!! Περίμενα κανένα awk filter απο σένα :) :) :). To βρήκαμε όντως ότι χρησιμοποιεί το kppp... Αχ και είχα ολόκληρο post για το πως θα ρυθμήσεις το pppd.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
vagalati
Mbyte level
Mbyte level
Posts: 579
Joined: Tue Mar 16, 2004 2:46 pm
Location: 7000 miles away from aueb

Post by vagalati » Sun Sep 12, 2004 2:45 pm

Αφού υπάρχει η εντολή γιατί να μην την χρησιμοποιήσουμε; :-D

Keep things simple! Η φιλοσοφία του slack είναι 'as simple as possible'
(ΟΚ όταν έχουμε τα κέφια μας κάνουμε και τα παράξενα)
Ni!! Ni!! Ni!!
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Sep 12, 2004 9:20 pm

Ε τώρα τα έχουν κάνει 'as simple as possible' γι' αυτό εδώ και καιρό έχω μετακομήσει στην Debian. Όταν ξεκίνησε ήταν most unix like distro.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Sun Sep 12, 2004 11:28 pm

θες να πεις ότι στη Debian το μοτο είναι as hard as possible? :lol: :lol: :lol: :lol:
[Better to understand a little than to misunderstand a lot]
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sun Sep 12, 2004 11:37 pm

όχι ρε είναι SysV based όμως και γουστάρω...:)(η slack ήταν bsd based) . Τηρεί μερικά standarts και τα πάντα είναι στην θέση τους(logs,pids,spool,config,libs,exec...). Για το packaging δεν το συζητάω γιατί απο την debian βγήκε τα υπόλοιπα distros είναι too minimini wanahave a package system like debian.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
vagalati
Mbyte level
Mbyte level
Posts: 579
Joined: Tue Mar 16, 2004 2:46 pm
Location: 7000 miles away from aueb

Post by vagalati » Mon Sep 13, 2004 11:35 am

HdkiLLeR wrote:...η slack ήταν bsd based...
Και είναι ακόμα... ;-)

Με το "as simple as possible" δεν εννοώ την ευκολία στον χρήστη. Επίσης ισχύει και στο slack ότι τα πάντα είναι στη θέση τους. :-)
Last edited by vagalati on Thu Sep 16, 2004 11:03 pm, edited 1 time in total.
Ni!! Ni!! Ni!!
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Mon Sep 13, 2004 1:46 pm

Έλα τώρα που παραμένει bsd based...ούτε το accounting των processes δεν είναι το ίδιο. Το porting την έχει χαλάσει. Βάλε την 3.6 :) :) :)
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
User avatar
vagalati
Mbyte level
Mbyte level
Posts: 579
Joined: Tue Mar 16, 2004 2:46 pm
Location: 7000 miles away from aueb

Post by vagalati » Fri Sep 17, 2004 10:49 pm

Κοίτα, το slack (10) έχει το init ίδιο και το package management ίδιο. Επίσης έχει και bsd process accounting (το οποίο πρέπει να το ενεργοποιήσεις στο /etc/rc.d/rc.M). Η μεγάλη διαφορά με το *BSD είναι ότι έχει πυρήνα... Linux :-D

Y.Γ.1. Την 3.6 την έχεις ακόμα;;;; :shock: Αλήθεια το χρησιμοπιείς καθόλου;;
Y.Γ.2. Θα το δούμε στο OpenBSD ποιός θα νοιώθει πιο... home ;)
Ni!! Ni!! Ni!!
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Sat Sep 18, 2004 4:30 am

vagalati wrote: Υ.Γ.2. Θα το δούμε στο OpenBSD ποιός θα νοιώθει πιο... home ;)
Ας μην σχολιάσω πόση ώρα κάναμε partition έτσι :) :) :)...και τι έφταιγε τελικά :).
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Locked

Return to “Δίκτυα υπολογιστών - Internet”