Cron

Stobe02

Stobe02

Jungspund
Hallo ich habe eine Perl-Script geschrieben, diese funktioniert soweit auch ohne Probleme.
Es liest mir aus einem LDAP-Server die Quota aus und setzt diese mit setquota. Das funktoniert auch ohne Probleme und macht was es machen soll. Doch leider wenn das Script von Cron aufgerufen wird läuft es zwar auch durch aber leider ohne erfolg. Ich bekomme die Ausgaben auch als Mail in /var/mail/root rein. Das sagt mir ja das das Script durchgelaufen ist. Doch leider wird die Quota nicht gesetzt. Hier mal der essenzielle Teil aus meinem Script.

Code:
foreach ( @arrayOfDNs )
{
        my $valref = $$href{$_};
        my @arrayOfAttrs = sort keys %$valref; #use Attr hashes
        my $attrName;
        foreach $attrName (@arrayOfAttrs)
        {
                next if ( $attrName =~ /;binary$/ );
                my $attrVal =  @$valref{$attrName};
                if($attrName eq "maxdirsize")
                {
                        $help = "@$attrVal"*1024;
                }
                if($attrName eq "uid")
                {
                        $user = "@$attrVal";
                }

        }
        print "setquota -u $user $help $help $help $help -a \n";
               `setquota -u $user $help $help $help $help -a`;
                sleep(2);
        $z++;
}

Kann mir evtl. jemand sagen warum die Quota nicht gesetzt wird.

Danke.
 
hab zwar keien ahnung von perl aber, solltest du setquota nicht mit exec oder system ausführen?

system('setquota -u $user....');
 
Danke das ist ein guter einwand. Diese habe ich auch schon versucht, leider ohne Erfolg. Das script funktioniert ja auch.
Wenn ich es mit /sbin/script_quota.pl aufrufe funktoniert ja auch alles bestens. Leider eben nur nicht wenn es von cron aufgerufen wird.
 
Lass dir mal den Output von setquota auch zuschicken.

Code:
my $out = `setquota -u $user $help $help $help $help -a`;
print $out;

Evtl. gibt's ja dort einen Fehler.
 
Habe ich gerade gemacht der ist leer. Wenn ich es manuel aufrufe dann nicht.
 
Und $help enthält einen gültigen String, der auch ein korrektes Argument darstellt? Zeilenumbrüche z.B. entfernt u.ä.?
 
Welche Meldungen bekommst du denn genau in der root-Mailbox? Hast du beim Aufruf auch sichergestellt, dass "setquota" (wahrscheinlich in "/usr/sbin") über $PATH gefunden wird? Der Standard-$PATH für die cron-Jobs enthält normalerweise nur /bin und /usr/bin, nicht /usr/sbin, du müsstest also ggf. "setquota" mit vollem Pfad aufrufen ...
 
And it works fine. Genau das war mein Fehler. In meinen anderen Scripten habe ich genau auf so etwas geachtet. Nur manchmal sieht man den Wald eben vor lauter Bäumen nicht.

Danke
 

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Shellskript - Fehler in Cron

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

dovecot und postfix Konfiguration Problem

Zurück
Oben