You need to use the UNIX command 'du' to get these file size.
I wrote a article about it before. Here is:
Did you know how big your library is ?
During our data maintenance , we usually want to know how big our libraries are. Which libraries dominate the whole disk.
First of all, I would like to introduce the SAS environment we need to processs. Our SAS9.2 SPD Server is under AIX operation system and we use EG4.3 to connect to SAS server by using Integrated Open Model (IOM).
I know there is a command SPDSLS to get the library’s size , but it only handle one library one time. If we has more than one hundred libraries to check , this way is too hard for us. I found UNIX command DU is very convenient and flexiable , I think we can use it to do better job.
A SPD Server library contain two part : one is Meta data which is really small ,we can neglect it ; the other is real table data which we need to check.
Now the following is the step by step how we complete this task, Hope can help other peoples.
1) Running the following code in EG.
options nolabel;
proc sql;
create table x as
select libname,engine,sysname,'du -g '||strip(sysvalue)||' > '||strip(libname)||'.txt' as value length=400
from dictionary.libnames
where sysname='Datapath' and engine='SASSPDS'
order by libname;quit;
We can see this table now.
The SQL create a table named x which contain name of library, engine of library , the type of parameter and a command you used to calculated the size of library.
From sysname=”Datapath”, we know sysvalue is the data path of storing for this libname.
Value column really look like :
du -g '/spds_data1/bhyh1/' '/spds_data2/bhyh1/' '/spds_data3/bhyh1/' '/spds_data4/bhyh1/' '/spds_data5/bhyh1/' '/spds_data6/bhyh1/' '/spds_data7/bhyh1/' > BHYH1.txt
“du –g” means calculated the directory’s size by G measure (e.g. 100 G ). The middle is the data path (i.e. directory ). “ > BHYH1.txt ” is telling OS to redirect the result of the command into a txt file.
2) At AIX , create a temporary directory :
Using software secureCRT to connect to SAS SPD Server . and create a lib_size directory under /spds_data11/temp/
3)Enter the directory we create a moment ago .
4)Copy these command from dataset X .
5) Paste these command into secureCRT and enter ENTER :
After that you will see lots of txt file under directory lib_size.
Open one of them , find the txt look like :
6) Running the following code to get the finally result we need , easy Hoo ?
data temp;
infile '/spds_data11/temp/lib_size/*.txt' lrecl=400 expandtabs ;
input size path : $40. ;
length lib_name $ 40 ;
lib_name=upcase(scan(path,-2,'/'));
run;
proc means data=temp nway noprint;
class lib_name;
var size;
output out=want(drop=_:) sum=lib_size;
run;
Here is the final result.
... View more