#!/bin/sh -e
+# sudo /mnt/narada/rootfs/srv/cloudstore/gearman/narada_s1_quota start get
+# sudo /mnt/narada/rootfs/srv/cloudstore/gearman/narada_s1_quota start set
+
name=`basename $0`
op=$2
test -z "$op" && op="get"
echo "# $name $op" >> $log_file
if [ "$1" = "get" ] ; then
- while read uid ; do
+ while read login ; do
+ uid=`echo $login | sed 's/^u//'`
echo -n "get $uid = " >> $log_file
quota --raw-grace --no-wrap -u $uid | tail -1 \
- | awk '{ print $2 " " $3 }' | tee -a $log_file \
- | grep '^[0-9][0-9]*'
+ | awk '{ print $2 " " $3 }' | sed -e 's/*//' | tee -a $log_file
done
elif [ "$1" = "set" ] ; then
- while read uid quota ; do
+ while read login quota ; do
+ uid=`echo $login | sed 's/^u//'`
echo "set $uid $quota" >> $log_file
setquota -u $uid $quota 0 0 0 /mnt/narada/
#quota --raw-grace --no-wrap -u $uid | tail -1
test -e $pid_file && kill `cat $pid_file` || true;
LD_PRELOAD=/mnt/narada/rootfs/usr/lib/libgearman.so.4 /mnt/narada/rootfs/usr/bin/gearman \
-h 10.60.0.244 -p 4730 -i $pid_file \
- -n -f ${name}_${op} -w `pwd`/$0 $op &
+ -n -f ${name}_${op} -w $0 $op &
elif [ "$1" = "stop" ] ; then
kill `cat $pid_file` && rm $pid_file
elif [ "$1" = "status" ] ; then
$name =~ s/\W+/_/g;
$worker->register_function( $name . '_quota_get' => sub {
- my $used = zfs( "zfs get -H -p -o value userused\@u%s $ENV{ZSLICE}" => $_[0] );
- my $quota = zfs( "zfs get -H -p -o value userquota\@u%s $ENV{ZSLICE}" => $_[0] );
+ my $used = zfs( "zfs get -H -p -o value userused\@%s $ENV{ZSLICE}" => $_[0] );
+ my $quota = zfs( "zfs get -H -p -o value userquota\@%s $ENV{ZSLICE}" => $_[0] );
return "$used $quota";
} );
$worker->register_function( $name . '_quota_set' => sub { zfs(
-"zfs set userquota\@u%s=%s $ENV{ZSLICE}" => $_[0]
+"zfs set userquota\@%s=%s $ENV{ZSLICE}" => $_[0]
) } );
warn "$0 $name pid $$ waitng for jobs ZFS slice $ENV{ZSLICE}\n";