Chinaunix首页 | 论坛 | 博客
  • 博客访问: 570358
  • 博文数量: 201
  • 博客积分: 7734
  • 博客等级: 少将
  • 技术积分: 1994
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 19:18
文章分类

全部博文(201)

文章存档

2011年(28)

2010年(173)

分类:

2010-09-06 15:38:24

今天就写了一个自动安装squid的perl脚本,遇到了很多问题,也明白了很多!
 
squid的参数只改了一部分。因为还没有学到控制结构,所以没有用判断语句,慢
 
慢改进。
 
今天测了最久就也就是文件句柄那里了。所以我也写点文件句柄的内容:
 
1、文件前面没有">"表示读文件。
[server1@root perl]# cat open1
#!/usr/bin/perl -w
open (CONFIGFILE, '/etc/inittab');
while () {
chomp;
print "$_\n";
}
close CONFIGFILE;
这里就写/etc/inittab这个文件的内容打印到了屏幕上。
 
2、文件前面有一个">"表示写文件,并覆盖原有内容。
open (CONFIGFILE, '>/etc/inittab');
print CONFIGFILE "linscora";
close CONFIGFILE;
 
3、用两个">>"表是追加。
 

#!/usr/bin/perl -w

my $squidfile='./squid-3.0.STABLE24.tar.gz';
system("tar -zxvf $squidfile");
#system("cd squid-3.0.STABLE24");

system("./squid-3.0.STABLE24/configure --prefix=/usr/local/squid2 --enable-storeio=aufs,diskd,ufs");
system("make");
system("make install");

#init file

my $squidconf='/usr/local/squid2/etc/squid.conf';
system("mkdir -p /var/log/squid");
system("useradd -s /sbin/nologin squid");
system("mkdir /cache1 /cache2");
system("chown -R squid /var/log/squid");
system("chown -R squid /cache1 /cache2");
system("cp /usr/local/squid2/etc/squid.conf{,.bak}");

#chage config files

use strict;
use IO::File;
my $CONFIG;
my $a;
open $CONFIG, '<', '/usr/local/squid2/etc/squid.conf'
      or die "Could not open this file: $!";
open $a, ">>", '/usr/local/squid2/etc/squid.conf.orig'
        or die "Could not open this file: $!";
select $a;
while (<$CONFIG>) {
#chomp;

s/
#\s*TAG:\s*visible_hostname/visible_hostname linscora/;

s/^access_log.*/access_log \/var\/log\/squid\/access.log squid/;
s/
# cache_log.*/cache_log \/var\/log\/squid\/cache.log squid/;

s/
# cache_effective_user\snobody/cache_effective_user squid/;

s/
# cache_effective_group\snobody/cache_effective_group squid/;

s/^
# cache_dir.*/cache_dir aufs \/cache1 18432 16 256/;

s/^icp_port.*/icp_port 0/;
s/
# cache_mem.*/cache_mem 768 MB/;

s/
# cache_swap_low.*/cache_swap_low 85 MB/;

s/
# cache_swap_high.*/cache_swap_high 90 MB/;

s/
# cache_store_log.*/cache_store_log none/;

print "$_";
}
close $CONFIG;
close $a;
system("yes|cp /usr/local/squid2/etc/squid.conf.orig /usr/local/squid2/etc/squid.conf");


阅读(715) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~