]> git.pld-linux.org Git - packages/OpenPBS.git/blame - pbsconfig
- dropped pre-cvs changelog
[packages/OpenPBS.git] / pbsconfig
CommitLineData
b320f022 1#!/usr/bin/perl -w
2
3use Getopt::Std;
4
5getopts('s:h');
6
70 if $opt_h;
80 if $opt_s;
9
10printHelpAndExit() if ($opt_h)||(@ARGV<1);
11
12my $server = shift @ARGV;
13my $spool = $opt_s;
14$spool = "/var/spool/pbs" if !$spool;
15die "pbsconfig: PBS spool directory $spool does not exist!\n" if ! -d $spool;
16
17my $serverName = $server;
18my @server = split(/\./,$server);
19die "pbsconfig: PBS server name [$server] should be fully qualified, eg [yourhost.yourdomain.com]\n" if @server < 2;
20shift @server;
21my $restricted = "*.".join(".",@server);
22
23my $cpuinfo = `cat /proc/cpuinfo`;
24my @cpuinfo = split(/\n/,$cpuinfo);
25
26my $numcpu = scalar grep(/processor/,@cpuinfo);
27my $cputype = join(", ",getvalues("model name",@cpuinfo));
28my $cpuspeed = join(", ",getvalues("cpu MHz",@cpuinfo));
29
30print "PBS Server name: $serverName\n";
31print "PBS Subnet: $restricted\n";
32print "Number of CPUs: $numcpu\n";
33print "CPU type: $cputype\n";
34print "CPU speed: $cpuspeed\n";
35
36my $ideal_load = $numcpu - 0.1;
37my $max_load = $numcpu - 0.1;
38
39my $momconfig = "$spool/mom_priv/config";
40my $mom = "";
41
42$mom = `cat $momconfig` if -r $momconfig;
43
44#print "old [$mom]\n";
45
46$mom = insert($mom,'$clienthost',$serverName);
47$mom = insert($mom,'$restricted',$restricted);
48$mom = insert($mom,'$usecp', "*:/ /");
49$mom = insert($mom,'$ideal_load',$numcpu - 0.1);
50$mom = insert($mom,'$max_load', $numcpu - 0.1);
51
52#print "new [$mom]\n";
53
54writeFile($momconfig,$mom);
55writeFile("$spool/default_server","$serverName\n");
56writeFile("$spool/server_name","$serverName\n");
57
58system "/etc/rc.d/init.d/pbs_mom restart";
59
60exit 0;
61
62sub writeFile
63 {
64 my $filename = shift @_;
65 my $content = shift @_;
66 open(TMPOUT,">$filename") || die "pbsconfig: Cannot write to $filename: $!\n";
67 print TMPOUT $content;
68 close TMPOUT;
69 }
70
71sub insert
72 {
73 my $cfg = shift @_;
74 my $key = shift @_;
75 my $value = shift @_;
76
77 return $cfg . "$key $value\n" if ! ($cfg =~ /\Q$key\E/);
78
79 $cfg =~ s/^\Q$key\E\b.*$/$key $value/m;
80
81 return $cfg;
82 }
83
84sub printHelpAndExit
85 {
86 print STDERR "Usage: pbsconfig [-h] [-s spooldir] servername\n";
87 exit 1;
88 }
89
90sub getvalues
91 {
92 my $key = shift @_;
93 my @ret;
94 foreach my $v (@_)
95 {
96 #print "[$v]\n";
97 next if !($v =~ /$key/);
98 my ($key,$value) = split(/: /,$v);
99 push @ret,$value;
100 }
101 return @ret;
102 }
103
104#end file
This page took 0.146688 seconds and 4 git commands to generate.