Hallo Liste, ich suche nach einem Tool, das ich in einem Script dazu benutzen kann, ein per ftp erreichbares Verzeichnis im Internet mit einem Verzeichnis auf meinem Server zu synchronisieren. Es sollte also das Datum der Dateien vergleichen und neuere Dateien bzw. welche, die noch nicht vorhanden sind, automatisch holen. Kann mir jemand einen kurzen Hinweis geben? Hintergrund: Ich will per cron-Job ab und zu die Virensignaturen von AVP AntiVirus updaten. Zwar existiert ein Win-Update-Programm, aber das holt immer das komplette directory ab, auch wenn ich es zweimal direkt nacheinander starte - und ein Download dauert etwa eine halbe Stunde. bei ftp und ncftp habe ich in den Manpages nix entsprechendes gefunden. -- Viele Grüße vom Bodensee, Ralf Steck - Die Textwerkstatt mailto:rsteck@die-textwerkstatt.deDiese Mail ist virengetestet und sauber (AntiVir) --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Ralf Steck wrote:
Hallo Liste,
ich suche nach einem Tool, das ich in einem Script dazu benutzen kann, ein per ftp erreichbares Verzeichnis im Internet mit einem Verzeichnis auf meinem Server zu synchronisieren. Es sollte also das Datum der Dateien vergleichen und neuere Dateien bzw. welche, die noch nicht vorhanden sind, automatisch holen. Kann mir jemand einen kurzen Hinweis geben?
Vielleicht kann wget das (?) -Marc -- .~. *** /V\ ************************************************************ * // \\ Center of Excellence Linux * Marc Schiffbauer * * /( )\ * Siemens ITS GmbH & Co. OHG * ** ^`~'^ *********************************************************** --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hi Ralf, * Ralf Steck wrote on 19 Apr 2000:
Hallo Liste,
ich suche nach einem Tool, das ich in einem Script dazu benutzen kann, ein per ftp erreichbares Verzeichnis im Internet mit einem Verzeichnis auf meinem Server zu synchronisieren. Es sollte also das
Mirror ? Gruß, Sebastian -- "No worries." - Rincewind Sebastian Helms - mailto:sebastian@helms.sh (PGP available) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.myokay.net/faq/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo alle, die Ideen geliefert haben, ich kann jetzt mit einem Script des Inhalts cd /home/share/AntiVir-Files isdnctrl dial ippp0 wget -m -nH --cut-dirs=1 ftp://ftp.avp.ru/updates isdnctrl hangup ippp0 die Viren-Definitionen aus dem Internet updaten. Cool! Was mir - auch nach längerem Suchen - jetzt noch fehlt, ist eine Möglichkeit, unbenutzte Definitionen zu löschen. Beim Download kommt eine Datei mit, in der die benutzten Definitionen (aber auch zwei andere Zeilen) zeilenweise drinstehen. Alle Definitionen heissen hinten ".avp". Ich bräuchte etwas nach dem Motto "Lösche mir alle Dateien im Verzeichnis, die nicht in avp.set drinstehen". Ich habe mir schon überlegt: # Inhalt von avp.set säubern cat avp.set | grep .avp > set_inhalt.txt # Dateien im Verzeichnis in die Datei ls | grep .avp >> set_inhalt.txt # sortieren sort set_inhalt.txt # Dubletten aussortieren, nur noch "Einzelne" sind in der Datei uniq set_inhalt.txt # Löschen rm < setinhalt.txt Das Problem ist, dass avp.set anscheinend eine DOS-Datei ist. Im Editor joe sehe ich hinter jeder Zeile was, das wie ein unterstrichenes M aussieht, und das stört natürlich bei uniq. Kann mir jemand weiterhelfen? -- Viele Grüße vom Bodensee, Ralf Steck - Die Textwerkstatt mailto:rsteck@die-textwerkstatt.de
--------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Ralf Steck wrote:
Das Problem ist, dass avp.set anscheinend eine DOS-Datei ist. Im Editor joe sehe ich hinter jeder Zeile was, das wie ein unterstrichenes M aussieht, und das stört natürlich bei uniq. Kann mir jemand weiterhelfen?
Bei einer SuSE ist ein alias "dos2unix" gesetzt, sonst halt "man recode" # grep dos2unix /etc/profile alias dos2unix='recode ibmpc..lat1' christian -- Bitte kein CC: bei Antwort an Mailingliste Etikette per Mail: To: mailings-suse@gmx.de Subject: send etikette http://www.ndh.net/home/schult/etikette.html --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hi Ralf, * Ralf Steck wrote on 19 Apr 2000:
# Inhalt von avp.set säubern cat avp.set | grep .avp > set_inhalt.txt # Dateien im Verzeichnis in die Datei ls | grep .avp >> set_inhalt.txt # sortieren sort set_inhalt.txt # Dubletten aussortieren, nur noch "Einzelne" sind in der Datei uniq set_inhalt.txt # Löschen rm < setinhalt.txt
Das Problem ist, dass avp.set anscheinend eine DOS-Datei ist. Im Editor joe sehe ich hinter jeder Zeile was, das wie ein unterstrichenes M aussieht, und das stört natürlich bei uniq. Kann mir jemand weiterhelfen?
( ls | grep .avp; recode ibmpc..lat1 avp.set ) | sort | uniq | rm Gruß, Sebastian -- "No worries." - Rincewind Sebastian Helms - mailto:sebastian@helms.sh (PGP available) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.myokay.net/faq/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Sebastian Helms schrieb am 20.Apr.2000:
* Ralf Steck wrote on 19 Apr 2000:
rm < setinhalt.txt
( ls | grep .avp; recode ibmpc..lat1 avp.set ) | sort | uniq | rm
Habe ich da was verpasst? rm ließt doch nicht von der Standardeingabe. Bernd -- Bei Fragen an die Liste erst mal nachschauen, ob es diese Frage nicht schon einmal gegeben hat. Ein Archiv der Liste findest Du auf: http://lists.suse.com/archives/suse-linux |Zufallssignatur 7 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hi Bernd, * Bernd Brodesser wrote on 20 Apr 2000:
* Sebastian Helms schrieb am 20.Apr.2000:
* Ralf Steck wrote on 19 Apr 2000:
rm < setinhalt.txt
( ls | grep .avp; recode ibmpc..lat1 avp.set ) | sort | uniq | rm
Habe ich da was verpasst? rm ließt doch nicht von der Standardeingabe.
Stimmt. Hab nicht aufgepaßt. Wenn keine Leerzeichen in den Dateinamen sind: (ls |grep \.avp; recode ibmpc..lat1 avp.set) | sort | uniq | for file in `cat`; do rm $file; done Gruß, Sebastian -- "No worries." - Rincewind Sebastian Helms - mailto:sebastian@helms.sh (PGP available) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.myokay.net/faq/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Sebastian, (ist es eigentlich normal, dass die Mails immer (rein zeitlich) inn der falschen Reihenfolge reinflattern? Ich habe beispielsweise (von 10:30) zwei Mails von Sebastian, in denene bernd B's Einwurf verarbeitet ist - aber die Brodessersche Mail fehlt mir noch... Strange!?)
(ls |grep \.avp; recode ibmpc..lat1 avp.set) | sort | uniq | for file in `cat`; do rm $file; done
Das mit dem for ist natürlich clever, ich hatte mich gestern abend mit tar drumrumgemogelt: cat avp.set | grep .avc | recode ibmpc..lat1 > temp.txt ls | grep .avc >> temp.txt cat temp.txt | sort > temp.txt cat temp.txt | uniq -u > temp.txt tar --remove-files -T temp.txt -f temp.tar rm temp.txt temp.tar Aber die "Zwei-Zeilen, keine-Tempdatei"-Lösung ist natürlich um Klassen schöner als mein Rumgewurstel. Jetzt baue ich noch ein paar Variablen zur besseren Anpassbarkeit ein und veröffetliche das ganze (mit anderen eigenen Scripts) auf meiner Website, dann bekomme ich sicher bald Gurustatus in der Linuxszene ;-) -- Viele Grüße vom Bodensee, Ralf Steck - Die Textwerkstatt mailto:rsteck@die-textwerkstatt.de http://www.die-textwerkstatt.de Privat: http://www.ralfsteck.de vcard: http://www.die-textwerkstatt.de/RalfSteck.vcf ----- Diese Mail wurde Ihnen von einem Linux-Server zugestellt - Nr. 69290 weltweit. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Bernd Brodesser wrote on Thu, Apr 20, 2000 at 03:56 +0200:
* Sebastian Helms schrieb am 20.Apr.2000:
* Ralf Steck wrote on 19 Apr 2000:
rm < setinhalt.txt
( ls | grep .avp; recode ibmpc..lat1 avp.set ) | sort | uniq | rm
Habe ich da was verpasst? rm ließt doch nicht von der Standardeingabe.
<Schuß ins Blaue> Dann eben: ( ls | grep .avp; recode ibmpc..lat1 avp.set ) | sort | uniq | xargs rm </Schuß ins Blaue> oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Sebastian,
cat avp.set | grep .avp > set_inhalt.txt ls | grep .avp >> set_inhalt.txt sort set_inhalt.txt uniq set_inhalt.txt rm < setinhalt.txt
Ach Manno, immer wenn ich denke, dass ich einen Geniestreich abgeliefert aheb, kommt einer von euch Cracks und schüttelt das ganze in einer Zeile aus dem Handgelenk :-) Im Enst, kann ich das greppen auch hinter die Klammer setzen, um auch avp.set zu "putzen"? Also (ls; recode ibmpc..lat1 avp.set ) | grep .avp | sort | uniq | rm Ich gestehe, dass ich Klammer und ; noch nicht nachgeachaut habe. -- Viele Grüße vom Bodensee, Ralf Steck - Die Textwerkstatt mailto:rsteck@die-textwerkstatt.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hi Ralf, * Ralf Steck wrote on 20 Apr 2000:
Hallo Sebastian,
cat avp.set | grep .avp > set_inhalt.txt ls | grep .avp >> set_inhalt.txt sort set_inhalt.txt uniq set_inhalt.txt rm < setinhalt.txt
Ach Manno, immer wenn ich denke, dass ich einen Geniestreich abgeliefert aheb, kommt einer von euch Cracks und schüttelt das ganze in einer Zeile aus dem Handgelenk :-)
*g* Na, ich hatte mich aber auch gefreut... bis zu Bernds Kommentar... :-)
Im Enst, kann ich das greppen auch hinter die Klammer setzen, um auch avp.set zu "putzen"? Also
Klar. Geht auch. Dann aber wie in der anderen Mail: ( ls; recode ibmpc..lat1 avp.set ) | grep \.avp | sort | uniq | for file in `cat`; do rm $file; done Das \.avp ist, damit er nur ".avp" und nicht "xavp" findet.
Ich gestehe, dass ich Klammer und ; noch nicht nachgeachaut habe.
Hab ch auch erst mit der Zeit gelernt.. :-) Gruß, Sebastian -- "No worries." - Rincewind Sebastian Helms - mailto:sebastian@helms.sh (PGP available) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.myokay.net/faq/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Sebastian und Bernd und alle anderen, Zur Vervollständigung des Mailarchivs und weil ich diese schöne Lösung nicht für mich behalten will, hier jetzt mein fertiges Script zur automatischen Aktualisierung der Kasperski-AntiVir-Signaturen: cd /home/share/AntiVir_files isdnctrl dial ippp0 wget -m -nH --cut-dirs=1 -o /tmp/wget.log ftp://ftp.avp.ru/updates isdnctrl hangup ippp0 cat /tmp/wget.log | mail -s "AntiViren-Update" ralf # ( ls; recode ibmpc..lat1 avp.set ) | grep \.avp | sort | uniq | for file in 'cat'; do rm $file; done In AntiVir muss das Signaturenverzeichnis entsprechend gesetzt werden. Dass dies im/home-Ast liegt, hat die Bewandtnis, dass dieses share-Verzeichnis über Samba für die Win-Clientserreichbar ist und diese ebenfalls mit AntiVir versehen sind. Durch die Einstellung automatischer Updates der Win-AntVirs auf dieses Verzeichnis habe ich eine automatische Aktualisierung im gesamten Netz realisiert. Auf dem Server laufen AntVir-Daemon und -Monitor für Linux, die gemeinsam jedes Datei-Öffnen im /home-Ast (Wo die DOS-Files liegen) überwachen. -- Viele Grüße vom Bodensee, Ralf Steck - Die Textwerkstatt mailto:rsteck@die-textwerkstatt.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Ralf, hallo Sebastian, * Sebastian Helms schrieb am 20.Apr.2000:
* Ralf Steck wrote on 20 Apr 2000:
cat avp.set | grep .avp > set_inhalt.txt
Wieso so kompliziert? grep .avp avp.set > set_inhalt.txt macht das gleiche, wenn auch nicht unbedingt genau das gewollte. ;)
ls | grep .avp >> set_inhalt.txt
Dito. ls *.avp >> set_inhalt.txt macht zwar nicht exakt das gleiche, aber mehr das, was Du willst, es werden nur Dateinamen in set_inhalt.txt angefügt, die mit .avp enden und nicht solche, die irgendwo ein .avp stehen haben. Beim grep steht der Punkt aber nicht nur für sich selber, sondern für jedes Zeichen außer den Zeilenumbruch. Obiges Verhalten würdest Du exakt mit ls *?avp* >> set_inhalt.txt bekommen, aber das willst Du gar nicht. Ob Du überhaupt an set_inhalt.txt anhängen willst, gehe ich hier nicht ein, dazu unten mehr.
sort set_inhalt.txt
Wenn Du das eingibst, so erhälst Du auf der Standardausgabe, also Deinen Bildschirm eine zeilenweise sortierte Datei set_inhalt.txt. Die Datei selber bleibt aber so wie sie ist. Sie wird nicht sortiert. Was Du möchtest ist sort set_inhalt.txt> datei komm aber nicht auf die Idee für datei set_inhalt.txt zu nehmen, denn dann wirst Du überrascht sein. Sie ist anschließend leer.
uniq set_inhalt.txt
Hier gilt das gleiche wie oben. Die Datei set_inhalt.txt ändert sich nicht. Du kannst es übrigens einfacher machen indem Du oben sort -u sagst, dann wird uniq schon gleich ausgeführt.
rm < setinhalt.txt
Hast Du das mal ausprobiert? Nein, Du würdest eine Fehlermeldung bekommen. rm braucht ein Argument, nämlich was es löschen soll. rm ließt nicht von der Standardeingabe.
Ach Manno, immer wenn ich denke, dass ich einen Geniestreich abgeliefert aheb, kommt einer von euch Cracks und schüttelt das ganze in einer Zeile aus dem Handgelenk :-)
Nicht ärgern, lernen, lohnt sich. ;))
*g* Na, ich hatte mich aber auch gefreut... bis zu Bernds Kommentar... :-)
Sorry. ;))
( ls; recode ibmpc..lat1 avp.set ) | grep \.avp | sort | uniq | for file in `cat`; do rm $file; done
Nein. recode gibt normal nichts aus, sondern verändert die Datei. Wenn es in einer pipeline eingebaut ist, so gibt es aber auch aus. Entweder vorab ein recode ibmpc..lat1 avp.set und dann weiter oder aber ( ls; cat avp.set | recode ibmpc..lat1 ) | ... unbeschadet, ob Du das so überhaupt so willst. Dazu unten mehr. Kann sein, daß es auch noch einfacher geht. Dazu gibt es man recode oder imho auch info recode. (Nein ich mag info nicht.) man recode habe ich nur mal überflogen. Aber so wie Du es schreibst geht es nicht. Ich glaube auch nicht, daß recode überhaupt nötig ist. Es sei denn, es kommen Namen mit Umlaute oder ß vor. Das \r\n anstelle von \n macht aber grep und auch rm nichts aus. Anstelle der for-Schleife ist ein einfaches xargs besser. (...) | grep \.avp | sort -u | xargs rm -f xargs hängt einfach alles was es auf der Standardeingabe vorfindet als Argument hinten an. Die Argumente die xargs folgen werden zuerst genommen. Das erste Argument ist der Befehl. Hier also das rm. Das -f wird auch gleich dem rm angehangen. Es ist eine Option für das rm aber nicht für xargs. Option für xargs müssen wie bei andern Befehlen auch vor dem ersten Argument kommen. Nach dem rm -f hängt xargs seine gesammte Standardeingabe an. Also das was Ihr haben wollt. Es kann aber sein, daß dem rm die Argumente zu viel werden. Das kann man mit der Option -n für xargs regeln. Siehe hierzu man xargs. Aber ich glaube nicht, daß es zuviel wird. ls /dev|xargs echo hat es bei mir ohne murren getan und mehr Dateien als /dev wirst Du nicht haben. ;)) Das -f hinter dem rm ist dafür da, daß ohne murren gelöscht wird. Wenn man kein Schreibrecht auf einer Datei hat, so fragt rm erst nach, ob es wirklich gelöscht werden soll. Wenn man rm -f angibt, entfällt diese Frage und es wird einfach gelöscht. Notwendig zum löschen ist das Schreibrecht im Verzeichnis und nicht das Schreibrecht auf der Datei, die man löschen will.
Das \.avp ist, damit er nur ".avp" und nicht "xavp" findet.
Das ist so korrekt.
Ich gestehe, dass ich Klammer und ; noch nicht nachgeachaut habe.
; ist nur das Ende eines Befehls und kann immer durch ein Zeilenumbruch ersetzt werden und umgekehrt. (Nicht das ;; das zur Syntax von case gehört.) Aber habt Ihr Euch mal überlegt, was da überhaupt gemacht wird? Es werden alle Dateien mit einer bestimmten Endung gelöscht, die in einem Verzeichnis vorhanden sind und zusätzlich noch solche, mit ebendergleichen Endung die in einer Datei aufgeführt werden. Ist das Sinn der Sache? Das kann überhaupt nur Sinn machen, wenn sie in der Datei mit absoluten Pfad dastehen, denn sonst reicht es doch alle aus dem Verzeichnis zu löschen. Wenn ich Dirk recht verstanden habe, so will er alles löschen, was im Verzeichnis vorhanden ist, aber nicht in der Datei steht. Du löschst aber alles was im Verzeichnis vorhanden ist und zusätzlich, was in der Datei steht. Jeweils nur mit bestimmter Endung. Du mußt zugeben, das ist was ganz anders. Wie sieht Dein avp.set denn überhaupt aus? All das, was bisher geschrieben wurde funktioniert nur, wenn in avp.set einzelne Zeilen existieren in denen ein Dateiname steht und sonst nichts. Sonst darf die Zeichenfolge .avp nirgends in der Datei auftauchen, sonst gibt es Probleme. Ist dem so? grep gibt eine Zeile aus, auf der das Suchmuster paßt. Das heißt, wenn irgendwo in einer Zeile das Suchmuster auftaucht, so wird die gesammte Zeile ausgegeben und nicht nur das Wort. Es ist oftmals besser Kommentarzeilen vorher auszusortieren. Dazu gibt man vorher noch ein grep -v Suchmuster in der pipeline, wobei Suchmuster auf einen Kommentar paßt. Das wäre z.B. ...| grep -v "^#" | ... für normale Linux-Kommentare die mit # beginnen. Das ^ steht für Zeilenanfang. Es werden also nur Kommentare über ganze Zeilen gefunden. Das -v besagt nun, daß nur Zeilen auf denen das Suchmuster *nicht* paßt weitergeleitet werden. Kommentare werden somit aussortiert. Bei Deiner Datei avp.set kann das natürlich anders aussehen. Wenn in avp.set die Dateinamen nicht alleine in einer Zeile stehen, so muß noch was anders gemacht werden. Z.B noch ein sed eingefügt werden. Da spekuliere ich aber jetzt nicht drüber. Da bräuchte ich schon genauere Angaben. Lege Dir eine sortierte Datei an, die Du meinetwegen set-inhalt.txt nennst. Dateien brauchen bei Linux übrigens keinerlei Endungen zu haben. Endungen haben oftmals keine Bedeutung. set-inhalt tut es genauso gut. Aber egal. Das machst Du, indem Du grep \.avp$ avp.set | recode ibmpc..lat1 | sort -u > set-inhalt.txt sagst. Ob das grep so ausreicht, weiß ich wie gesagt nicht. Das $ steht für Zeilenende. Das recode habe ich doch mal gelassen, falls Umlaute vorhanden sind. Als nächstes suchst Du mit comm die Zeilen aus, die es in ls gibt aber nicht in set-inhalt.txt und löschst diese Dateien: ls | comm -23 - set-inhalt.txt | xargs rm -f comm vergleicht zwei sortierte Dateien. Hier - und set-inhalt.txt, dabei steht - für die Standardeingabe. comm gibt die Eingabe in drei Spalten wieder aus. In der ersten Spalte stehen Sachen, die es nur in der ersten Datei gibt, in der zweiten solche, die nur in der zweiten Datei stehen und in der dritten solche die gemeinsam sind. Steht in den deutschen Manpages übrigens falsch. In den englischen richtig. Funktioniert aber nur mit sortierten Dateien richtig. Aber set-inhalt.txt haben wir ja sortiert und ls gibt seine Zeilen ja auch sortiert aus. Wenn ls in eine Pipeline schreibt, so gibt es anders als auf dem Bildschirm die Dateien einzeln aus. Kann man sich mit ls|cat anschauen. Das -23 besagt, daß die zweite und dritte Spalte nicht ausgegeben werden soll. Es wird somit nur die erste Spalte ausgegeben, also nur Zeilen, die von ls kommen aber nicht in set-inhalt.txt stehen. Genau die, die gelöscht werden sollen. Zu xargs habe ich oben schon geschrieben. Da rm ein gefährlicher Befehl ist, würde ich dringend dazu raten erst mal einen Test zu machen wo anstelle des rm -f ein echo steht. Damit es nicht am Bildschirm vorbeirauscht auch noch ein less hinterher. Obige Zeile sieht dann wie folgt aus: ls | comm -23 - set-inhalt.txt | xargs echo | less Wenn da nur Dateien auftauchen, die auch wirklich gelöscht werden sollen, so kann man dann den echten Befehl ausführen.
Hab ch auch erst mit der Zeit gelernt.. :-)
Ja, ich auch. ;)) Sollten noch Fragen auftauchen, so fragt. Ansonsten gibt es da noch man cat man grep man recode man sort man uniq man comm man xargs und all die, die ich vergessen habe. ;)) Und wenn jetzt einer sagt, ich wüßte das alles schon, so sage ich nur nein, nicht ganz. recode kannte ich gar nicht (besser gesagt, ich hatte mich erinnert schon mal davon gehört zu haben) aber ein kleiner Test und ein Blick in den manpages reichte aus um festzustellen, daß da was nicht stimmte. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Bernd, * Bernd Brodesser wrote on 20 Apr 2000: [jede Menge sinnvolle Sachen] Da muß ich mich ja mal in die Ecke stellen... Das mit recode hab ich wohl nicht genau genug nachgeschaut; und ob das ganze überhaupt das tut, was Ralf wollte, hab ich gar nicht kontrolliert... Sorry falls da was schiefgelaufen sein sollte... Gruß, Sebastian -- "No worries." - Rincewind Sebastian Helms - mailto:sebastian@helms.sh (PGP available) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.myokay.net/faq/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Sebastian, * Sebastian Helms schrieb am 20.Apr.2000:
* Bernd Brodesser wrote on 20 Apr 2000:
[jede Menge sinnvolle Sachen]
Da muß ich mich ja mal in die Ecke stellen...
Warum das denn? Nein brauchst Du nicht. Nur weil ich da was intensiver gebohrt habe, heißt das doch noch lange nicht, daß das alles Mist war, was Du gemacht hast. Bernd -- Hast Du bei Problemen schon in der SuSE-Support-Datenbank (SDB) nachgesehen? Auf Deinem Rechner: file://usr/doc/susehilf/index.html | mit Apache: http://localhost/doc/susehilf/index.html | Zufalls- Tagesaktuell bei SuSE: http://sdb.suse.de/sdb/de/html/index.html | signatur 2 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
HI Bernd, * Bernd Brodesser wrote on 20 Apr 2000:
Warum das denn? Nein brauchst Du nicht. Nur weil ich da was intensiver gebohrt habe, heißt das doch noch lange nicht, daß das alles Mist war, was Du gemacht hast.
Naja, aber ich hätte wenigstens mal genauer lesen können. Better luck next time :-) Gruß, Sebastian -- "No worries." - Rincewind Sebastian Helms - mailto:sebastian@helms.sh (PGP available) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.myokay.net/faq/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Bernd, erstmal vielen Dank für Diene erschöpfende Antwort. Hier nochmal mein ursprüngliches Problem anz genau beschrieben: Ich benutze den Virenscanner AVP von Kasperski Labs. Die Idee ist die, mein System/Netzwerk komplett zu schützen, und AVP ist auf Linux UND Win (und anderen OSsen) verfügbar. Die Virenfiles liegen auf Kasperskis ftp-Server und werden wöchentlich upgedated. Da ein veralteter Virenschutz keiner ist und ich wie alle Menschen vergesslich und faul bin, suchte ich nach einem Automatismus für diese Updates. Der Win-Updater benötigt eine dreiviertel Stunde undd ist manuell zu bedienen, also kam ich auf die Idee, mir ein Linux-Script zu schreiben. Die Virendefinitionen sehen folgendermassen aus: targazer:~ # ll /home/share/AntiVir_files/ total 1924 drwxr-xr-x 2 root root 4096 Apr 19 23:33 . drwxrwxrwx 5 root root 4096 Apr 19 16:34 .. -rw------- 1 root root 1748 Apr 19 18:57 .listing -rw-r--r-- 1 root root 2206 Apr 19 14:50 avp.klb -rw-r--r-- 1 root root 342 Apr 14 14:50 avp.set -rw-r--r-- 1 root root 3428 Feb 14 13:12 avp.vnd -rw-r--r-- 1 root root 1012512 Feb 14 13:11 avp0002.avc -rw-r--r-- 1 root root 1371 Feb 14 13:12 avp0002.klb -rw-r--r-- 1 root root 15123 Feb 14 13:11 backdoor.avc [...] -rw-r--r-- 1 root root 4354 Feb 14 13:12 malware.avc -rw-r--r-- 1 root root 37278 Feb 14 13:12 script.avc -rw-r--r-- 1 root root 79732 Feb 14 13:12 trojan.avc -rw-r--r-- 1 root root 158559 Feb 14 13:12 unpack.avc -rw-r--r-- 1 root root 9687 Feb 19 10:30 up000218.avc [...] -rw-r--r-- 1 root root 5676 Apr 14 14:50 up000414.avc Die Virendefinitionen sind die mit dem .avc. avp0002.avc ist die Hauptdatei, in diesem Fall von Februar 2000 (0002). Die script, trojan usw. sind Definitionen spezieller Viren, beispielsweise Javascript oder Trojaner. Die wöchentlichen Updates heissen upxxxxxx.avc, ebenfalls je nach Datum. avp.set ist die "Steuerdatei", die dem Programm sagt, welche Defs er nehmen soll. , und sieht so aus: avp0002.avcM script.avcM [...] malware.avcM eicar.avcM M ; 0XLSznpdI71fB300e7Uwj1HSjwVFWLu2L2qe671FqhyeFoNAPbvs+c8HtU Das M ist im joe unterstrichen und stellt IMHO einen falschen Zeilenumbruch dar, der nachher beim uniq stört. deshalb der recode. Da ich nicht immer den Riesenbrummer runterladen will, benutze ich mirroring mit wget, das funktioniert ja auch klasse - nur neuere und nicht vorhandene Dateien werden runtergeladen. Das Problem kommt, wenn eine neue Hauptdatei rauskommt. Dann sind die Wochenupdates bis dorthin obsolet und die neue Datei heisst avp0006.avc oder so. Bleiben also in meinem Verzeichnis die überflüssigen avp0002.avc und die ganzen upxxxxxx.avc. Die aktuell benutzten Dateien stehen ja in der avp.set, also kann ich durch ein "ls minus avp.set" die Dateien rauskriegen, dioe ich löschen will. Problem: Die Dateien sind in avp.set nicht sortiert, und da ist diese Leerzeile und die mit dem seltsamen "; 0XLSznpdI71fB300...", die beim Vergleich stören. Die *.klb, *.set usw., die mit ls rauskommen, will ich nicht löschen, müssen also ebenfalls gefiltert werden. Wenn ich deine Vorschläge also richtig auseinandersortiere, sollte ich weiterkommen mit einem grep \.avp avp.set | recode ibmpc..lat1 | sort -u set-inhalt.txt ls | grep \.avp |comm -23 - set-inhalt.txt | xargs rm -f Wie gesagt, ich hatte mit mit tar um das mehrfache Löschen rumgemogelt, aber so ists schöner. -- Viele Grüße vom Bodensee, Ralf Steck - Die Textwerkstatt mailto:rsteck@die-textwerkstatt.de
--------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Ralf, * Ralf Steck schrieb am 20.Apr.2000:
upxxxxxx.avc, ebenfalls je nach Datum. avp.set ist die "Steuerdatei", die dem Programm sagt, welche Defs er nehmen soll. , und sieht so aus:
avp0002.avcM script.avcM [...] malware.avcM eicar.avcM M ; 0XLSznpdI71fB300e7Uwj1HSjwVFWLu2L2qe671FqhyeFoNAPbvs+c8HtU
Das ist doch schon mal prächtig. Wenn immer nur die letzten beiden Zeilen stören, so nimm sie doch einfach raus. Du kannst sie aber auch einfach drin lassen, sie stören nicht.
Bleiben also in meinem Verzeichnis die überflüssigen avp0002.avc und die ganzen upxxxxxx.avc. Die aktuell benutzten Dateien stehen ja in der avp.set, also kann ich durch ein "ls minus avp.set" die Dateien rauskriegen, dioe ich löschen will. Problem: Die Dateien sind in
Aber genau das machst Du doch nicht. Du machst ein ls plus avp.set Wenn Du anschließend mit uniq drüber gehst, so machst Du aus doppeltem nur einfaches. Wenn Du es mit uniq machen willst, dann mußt Du uniq -u sagen. uniq -u nimmt alle Doppelten komplett heraus. $ cat test erste Zeile doppelte Zeile doppelte Zeile letzte Zeile $ uniq test erste Zeile doppelte Zeile letzte Zeile $ uniq -u test erste Zeile letzte Zeile Aber mit comm ist besser, da hier unterschieden wird, woher es kommt. Außerdem brauchst Du Deine avp.set gar nicht zu bearbeiten.
avp.set nicht sortiert, und da ist diese Leerzeile und die mit dem seltsamen "; 0XLSznpdI71fB300...", die beim Vergleich stören. Die *.klb, *.set usw., die mit ls rauskommen, will ich nicht löschen, müssen also ebenfalls gefiltert werden.
Ist schon klar. Aber jetzt kommt's mir. Ich hatte da auch einen Fehler. Es muß ls *.avc anstelle von einfach ls heißen.
Wenn ich deine Vorschläge also richtig auseinandersortiere, sollte ich weiterkommen mit einem
grep \.avp avp.set | recode ibmpc..lat1 | sort -u set-inhalt.txt
Hier fehlt ein > Du erzeugst eine Datei set-inhalt.txt. Das macht man nicht, indem man es am sort anhängt. sort ist ein Filter um Ausgabe kümmert sich sort nicht. Da grep und recode nich nötig sind, reicht ein ort -u avp.set > set-inhalt.txt Das -u ist auch schon überflüssig, da in avp.set nichts doppeltes vorkommt.
ls | grep \.avp |comm -23 - set-inhalt.txt | xargs rm -f
ls *.avc | comm -23 -set-inhalt.txt | xargs rm -f ist besser und einfacher.
Wie gesagt, ich hatte mit mit tar um das mehrfache Löschen rumgemogelt, aber so ists schöner.
Das mit tar verstehe ich nicht. Und wie gesagt, erst mal echo anstelle von rm, nicht das Du wegen einen dummen Fehler zuviel löschst. Wenn es mal stabil ist, kannst Du das mit dem echo wegmachen. Ach ja, wenn es in einem Shellskript ist, natürlich das rm ganz wegmachen, bzw auskommentieren. Du mußt noch eingreifen können, wenn er zuviel löschen will. Bernd -- Hast Du bei Problemen schon in der SuSE-Support-Datenbank (SDB) nachgesehen? Auf Deinem Rechner: file://usr/doc/susehilf/index.html | mit Apache: http://localhost/doc/susehilf/index.html | Zufalls- Tagesaktuell bei SuSE: http://sdb.suse.de/sdb/de/html/index.html | signatur 2 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Wie gesagt, ich hatte mit mit tar um das mehrfache Löschen rumgemogelt, aber so ists schöner.
Das mit tar verstehe ich nicht.
Mit tar -remove-files -T <Ergebnisdatei> -f muell.tar ; rm muell.tar kann ich alle Files in eine Datei taren, von der ich weiss, wie sie heisst, und dann löschen :-) (alles noch ungetestet) -- Viele Grüße vom Bodensee, Ralf Steck - Die Textwerkstatt mailto:rsteck@die-textwerkstatt.de
--------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Bernd, Sebastian, usw., Hier jetzt ein Script, das nicht nur wunderbar funktioniert, sondern sogar per Mail erschöpfend Auskunft über sein "Wirken" gibt: cd /home/share/AntiVir_files isdnctrl dial ippp0 wget -m -nH --cut-dirs=1 -o /tmp/wget.log ftp://ftp.avp.ru/updates isdnctrl hangup ippp0 # grep \.avc avp.set | recode ibmpc..lat1 | sort -u > set-inhalt.txt echo "Dateien zu löschen: " >> /tmp/wget.log ls *.avc | comm -23 - set-inhalt.txt >> /tmp/wget.log ls *.avc | comm -23 - set-inhalt.txt | xargs rm -f cat /tmp/wget.log | mail -s "AntiViren-Update" ralf Vielen Dank an alle! Ich werde mir jetzt noch ein Script bauen für das tägliche daily.avc-File, dann sollte mir garnix mehr passieren :-) -- Viele Grüße vom Bodensee, Ralf Steck - Die Textwerkstatt mailto:rsteck@die-textwerkstatt.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Hallo Ralf, * Ralf Steck schrieb am 23.Apr.2000:
Hier jetzt ein Script, das nicht nur wunderbar funktioniert, sondern sogar per Mail erschöpfend Auskunft über sein "Wirken" gibt:
Das ist doch schön, aber noch eine kleine Änderung hätte ich da für Dich.
ls *.avc | comm -23 - set-inhalt.txt >> /tmp/wget.log ls *.avc | comm -23 - set-inhalt.txt | xargs rm -f
ls *.avc | comm -23 -s set-inhalt.txt | tee -a /tmp/wget.log | xargs rm -f Macht das selbe wie Deine beiden Zeilen. Es ist nicht nur kürzer, sondern in /tmp/wget.log stehen dann wirklich alle Dateien, auf denen Du ein rm angewendet hast. Bei Deinen Zeilen ist das zwar auch der Fall, aber nur, wenn Du Dich nirgendwo verschrieben hast. Wenn Du Dich bei meiner einer Zeile verschreibst, so ist das zwar auch nicht gut, aber Du merkst es wenigstens an Deiner log-Datei. Bernd -- LILO funktioniert nicht? Hast Du /etc/lilo.conf verändert und vergessen, lilo aufzurufen? Ist Deine /boot-Partition unter der 1024 Zylindergrenze? Bei anderen LILO Problemen mal in der SDB nachschauen: http://localhost/doc/sdb/de/html/rb_bootdisk.html |Zufallssignatur 6 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Bernd Brodesser schrieb in 1,3K (36 Zeilen):
* Ralf Steck schrieb am 23.Apr.2000:
Hier jetzt ein Script, das nicht nur wunderbar funktioniert, sondern sogar per Mail erschöpfend Auskunft über sein "Wirken" gibt:
Das ist doch schön, aber noch eine kleine Änderung hätte ich da für Dich.
ls *.avc | comm -23 - set-inhalt.txt >> /tmp/wget.log ls *.avc | comm -23 - set-inhalt.txt | xargs rm -f
ls *.avc | comm -23 -s set-inhalt.txt | tee -a /tmp/wget.log | xargs rm -f
Nur als Anmerkung: File mit Newlines. "set-inhalt.txt werweiswas.avc" Oder mit spaces. "*.avc nix.avc" Abgesehen davon: Das Packet "mirror" liegt dir nicht? -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (7)
-
B.Brodesser@online-club.de
-
cschult@gmx.de
-
marc.schiffbauer@links2linux.de
-
rsteck@die-textwerkstatt.de
-
sebastian@helms.sh
-
steffen@dett.de
-
weissel@netcologne.de