Hi!
I am trying to tune my samba server in what regards reporting the free space 
for each share. I use a filesystem with quotas, kernel 2.4.21 in a Debian 
linux box with samba 3.0.0beta1-2. 
I usually get the quota information through the command:
# quota some_user
Disk quotas for user some_user (uid userID):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   
grace
      /dev/hda2 30284108  31000000 31000000           61701       0       0
In my smb.conf i added the "dfree command = /home/samba/scripts/dfree.pl
%U",
so each time the free space information is requested from the smb clients the 
command is run.
The dfree.pl is a perl script, wich consists of:
/*                begin of perl script                         */
#!/usr/bin/perl
open(LOG,">>/tmp/df_usage.log"); # create a log file
$com = "quota ".$ARGV[0];
open (PIPE, $com." |");
while (<PIPE>) {
 # $_ = "      /dev/hda2 30284108 31000000 31000000    61752  0  0"
 if (($device, $used, $quota, $limit, $quotaInodes, $limitIndodes)      m/[
]+([a-z0-9\/]+)[ ]+([0-9]+)[ ]+([0-9]+)[ ]+([0-9]+)[ ]+([0-9]+)[
]+([0-9]+)[ ]+([0-9]+)/) {
   print $used." ".($quota-$used)."\n";
 }
   print LOG "I am " . $ENV{USER} . "\n" . $_; # write the
real result of
quota to the log file plus the USER env var
}
close(PIPE);
close(LOG);
/*                end of perl script                         */
In the some_user case above the perl script when run from a common shell 
returns:
# ./dfree.pl some_user
30284108 715892
Wich is the used space and the available space until quota is exceeded.
Altough the dfree.pl script returns uota information for some_user in a common 
shell i get:
/* begin /tmp/df_usage.log */
I am root
Disk quotas for user some_user (uid <the_id>): none
I am root
Disk quotas for user some_user (uid <the_id>): none
I am root
Disk quotas for user some_user (uid <the_id>): none
I am root
Disk quotas for user some_user (uid <the_id>): none
...
/* end /tmp/df_usage.log */
... in the log file when the command is run by samba.
Is there any issue regarding shell scripts executed from the "dfree
command" ?
Is there any other "less ridiculous" way of getting the wanted result
?
Thanks in advance,
Keep up the good work,
LL