R
S
T
M
A
L
D
A
S
A
D
Hi,
ich brauch mal Anregungen, was das noch sein könnte.
In einem Perl-Script führe ich einen grep aus. Der grep funktioniert, wenn ich ihn direkt in der Shell (/bin/bash und /bin/sh) ausführe oder wenn ich das Perl-Script direkt starte, aber nicht, wenn das Perl-Script über einen Cronjob gestartet wird.
Ein anderer grep im selben Perl-Script funktioniert problemlos, der nicht funktionierende grep läuft ca. 15 Minuten (normal wären es etwas mehr), bringt aber kein Ergebnis zurück.
Folgender Perl-Code:
Code: Alles auswählen
my $grep_ios="cd ".$wm_conf_ce." && /bin/egrep \"^interface [a-Z]+ *[0-9\\/]+\" -A 20 -r * 2>&1 | /bin/egrep \"(:interface |- description|- (ip )?vrf|- ip(v6)? address|- +standby( +.*)? ipv6)\" 2>&1";
my @cmd_output=`$grep_ios`;
Code: Alles auswählen
cd /home/ipc/conf-ce-current/ && /bin/egrep "^interface [a-Z]+ *[0-9\/]+" -A 20 -r * 2>&1 | /bin/egrep "(:interface |- description|- (ip )?vrf|- ip(v6)? address|- +standby( +.*)? ipv6)" 2>&1
Der funktionierende grep sieht nicht viel anders aus:
Code: Alles auswählen
my $grep_ios_wan="cd ".$wm_conf_ce." && /bin/egrep \"^ *(router bgp |address-family ipv[46] vrf |neighbor .* remote-as 20570)\" -r * 2>&1";
my @cmd_output=`$grep_ios_wan`;
Code: Alles auswählen
cd /home/ipc/conf-ce-current/ && /bin/egrep "^ *(router bgp |address-family ipv[46] vrf |neighbor .* remote-as 20570)" -r * 2>&1
Cron-Eintrag:
Code: Alles auswählen
30 1,6,12 * * * /usr/bin/perl /home/ipc/CoPS/bin/agent_ip.pl >> /home/ipc/CoPS/logs/cronjob_ip 2>&1
Ideen?