存档

文章标签 ‘linux’

linux centos系统用户不显示当前文件夹名和用户名怎么办?

2010年12月26日 无风的飘逸 没有评论

在用户根目录创建新文件.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export PS1="[\u@\h \W]#\[\033[0m\]"

Share
分类: Linux 技术 标签: ,

一键搭载VPN服务器ppptp

2010年12月12日 无风的飘逸 3 条评论

VPN其实和宽带账号一样一样的。

但是我说的VPN仅指国外linux服务器下的vpn

搭VPN服务器,网络上有一大堆教程,什么VPN搭建完全解析,什么如何搭建VPN服务器,VPN搭建教程,文本版的、视频版的。五花八门都有。我现在就来一个一键版的,让大家尝个鲜。

PPTPD VPN是目前比较好用的vpn之一,为了方便ctohome的客户安装vpn服务,我们找到diahosting公开发布的一个“一行命令,一键在xen或linux服务器上安装VPN服务(PPTPD VPN)”的脚本,推荐给大家使用:

一行命令安装PPTPD VPN(注意,只在CentOS 5 32bits/64bits下测试通过,其他系统未测试):

wget http://www.CTOHome.com/linux-vps-pack/vpn-pptpd.sh;sh ./vpn-pptpd.sh;

用root登录ssh,复制粘贴上面一行命令,回车等待几分钟即可。

一键安装VPN完成后,会直接显示VPN用户名(默认就是vpn1和vpn2)和密码,

请留意下面的字样,密码中可能会有/=等特殊字符,但没有空格,复制密码的时候,小心不要复制了空格

VPN username: vpn1   password: rPpVvZUo
VPN username: vpn2   password: 55Y3ut6t

如何在windows客户端使用pptpd vpn?

请看教材:WindowsXP如何连接VPN服务器?

如何创建更多的vpn用户?

请在linux下,ssh编辑/etc/ppp/chap-secrets文件,按照相同格式添加用户名和密码即可。

# this script was written by diahosting and edited by ctohome, free to use

mkdir -p /backup/www.ctohome.com/
cd /backup/www.ctohome.com/

yum remove -y pptpd ppp
iptables --flush POSTROUTING --table nat
rm -rf /etc/pptpd.conf
rm -rf /etc/ppp

wget http://www.ctohome.com/linux-vps-pack/vpn/dkms-2.0.17.5-1.noarch.rpm
wget http://www.ctohome.com/linux-vps-pack/vpn/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
wget http://www.ctohome.com/linux-vps-pack/vpn/pptpd-1.3.4-1.rhel5.1.i386.rpm
wget http://www.ctohome.com/linux-vps-pack/vpn/ppp-2.4.4-9.0.rhel5.i386.rpm

yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers
rpm -ivh dkms-2.0.17.5-1.noarch.rpm
rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
rpm -qa kernel_ppp_mppe
rpm -Uvh ppp-2.4.4-9.0.rhel5.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

mknod /dev/ppp c 108 0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "mknod /dev/ppp c 108 0" >> /etc/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
echo "localip 172.16.36.1" >> /etc/pptpd.conf
echo "remoteip 172.16.36.2-254" >> /etc/pptpd.conf
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd

pass1=`openssl rand 6 -base64`
if [ "$1" != "" ]
then pass1=$1
fi

pass2=`openssl rand 6 -base64`
if [ "$1" != "" ]
then pass2=$1
fi

echo -e "vpnuser1 pptpd ${pass1} *\nvpnuser2 pptpd ${pass2} *" >> /etc/ppp/chap-secrets

iptables -t nat -A POSTROUTING -s 172.16.36.0/255.255.255.0 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
service iptables save

chkconfig iptables on
chkconfig pptpd on

service iptables start
service pptpd start
echo '';
echo '';
echo '';
echo '';
echo '';
echo '**********************************************************';
echo '*******     PPTPD VPN service was installed        *******';
echo '*******                                            *******';
echo '*******    2 VPN username and password created     *******';
echo '*******                                            *******';
echo "*******VPN username: vpnuser1 password: ${pass1}   *******";
echo "*******VPN username: vpnuser2 password: ${pass2}   *******";
echo '*******                                            *******';
echo '*******                                            *******';
echo "*******    VPN Script usage, note and upgrade:     *******";
echo '*******                                            *******';
echo '*******  http://www.ctohome.com/FuWuQi/8b/291.html *******';
echo '*******                                            *******';
echo "*******      How to use VPN via windows xp:        *******";
echo '*******                                            *******';
echo '*******  http://www.ctohome.com/FuWuQi/92/273.html *******';
echo '*******                                            *******';
echo '**********************************************************';
echo '';
echo '';

当然,这个代码不是我自己写出来的,呵呵,仅收录而已。

by 无风的飘逸

Share
分类: Linux 技术 标签: , ,

使用squid做web镜像完全策略_web反向代理

2010年11月27日 无风的飘逸 没有评论

应用环境:一台智能DNS,一台web做原始服务器,三台squid做web镜像,三台squid分别在重庆,上海,天津,web 在深圳,智能dns能分析客户访问接入的IP然后叫其访问本城市的服务器,比如说上海的客户访问的就是上海的web镜像,然后第二次访问的时候首先是向其 他两台squid发起请求看有没有这个缓存,如果没有在向web发起请求

系统环境:CentOS 5.2,squid-3.1.0.13.tar.gz,其中web服务器是LAMP环境,域名为www.qubaoquan.com

IP 和域名规划:智能DNS的ip为192.168.10.100,web服务器的IP为192.168.10.1,上海squid的IP 为:192.168.10.2,重庆squid的IP为:192.168.10.3,天津squid的IP为:192.168.10.4,对外提供的域名 为www.qubaoquan.com

如下的的配置是上海的squid的配置,其他两台squid只要做些响应更改就可以了

1. 安装

[root@squid srv]# tar zvxf squid-3.1.0.13.tar.gz

[root@squid srv]# cd squid-3.1.0.13

[root@squid srv]# ./configure --prefix=/usr/local/squid --enable-storrio=ufs,aufs,null --enable-linux-netfilter

[root@squid srv]# make

[root@squid srv]# make install

2. 创建运行squid的用户

[root@squid srv]# useradd squid

3. 创建运行所需的目录并且赋权

[root@squid srv]# mkdir -p /usr/local/squid/cache

[root@squid srv]# chown -R squid:squid /usr/local/squid/cache/

[root@squid srv]# mkdir -p /var/run/squid/

[root@squid srv]# chown -R squid:squid /var/run/squid/

[root@squid srv]# mkdir -p /var/log/squid

[root@squid srv]# chown -R squid:squid /var/log/squid

4. 编辑主配置文件

[root@squid srv]# cd /usr/local/squid/etc/

[root@squid etc]# mv squid.conf squid.conf.bak

[root@squid etc]# vi squid.conf(内容如下)

############# basic setting ###############

visible_hostname 192.168.10.2

pid_filename /var/run/squid/squid.pid

dns_nameservers 192.168.10.100

############# log config ###############

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_store_log none

#========&gt; log format <===============

logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st"%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh

#====================#

logfile_rotate 24

emulate_httpd_log on //使日志和Apache的格式相似

debug_options ALL,2 //debuge级别

############# acl setting ###############

acl all src 0.0.0.0/0.0.0.0

http_access allow all

############ timeout setting ############

connect_timeout 1 minute

peer_connect_timeout 30 seconds

request_timeout 2 minutes

persistent_request_timeout 1 minute

############# admin setting #############

cache_mgr quxinrao@163.com

############# cache setting #############

cache_dir ufs /usr/local/squid/cache 4096 16 256

cache_mem 125 MB

cache_swap_low 90

cache_swap_high 95

maximum_object_size 32768k

minimum_object_size 2k

maximum_object_size_in_memory 256 KB

cache_replacement_policy lru

memory_replacement_policy lru

cache_effective_user squid

cache_effective_group squid

#=========&gt; dns reslove cache <========

ipcache_size 1024

ipcache_low 90

ipcache_high 95

fqdncache_size 1024

#==========> no cached <==========

hierarchy_stoplist cgi-bin ?

hierarchy_stoplist -i ^https:\\ ?

acl QUERY urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi

acl denyssl urlpath_regex -i ^https:\\

no_cache deny QUERY

no_cache deny denyssl

#==========> Expires setting <=============

refresh_pattern -i \.gif$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.jpg$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.png$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.bmp$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.jpeg$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.mp3$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.wmv$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.rm$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.swf$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.mpeg$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.wma$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.css$ 10 50% 60 reload-into-ims

refresh_pattern -i \.js$ 10 50% 60 reload-into-ims

refresh_pattern -i \.xml$ 10 50% 30 reload-into-ims

############# porxy setting #############

http_port 80 accel vhost vport

icp_port 3130

cache_peer 192.168.10.1 parent 80 3310 no-query round-robin max-conn=32 originserver name=qubaoquan

cache_peer_domain qubaoquan www.qubaoquan.com

#==========> forword cyclic <=============

#acl fromneighbor src 192.168.168.5

#cache_peer_access 192.168.168.5 deny fromneighbor

#==========> neighbor setting <=============

cache_peer 192.168.10.3 sibling 80 3310

cache_peer 192.168.10.4 sibling 80 3310

#==========> ICP contorl &lt;=============

acl N1 src 192.168.10.3

acl N2 src 192.168.10.4

acl ALL src 0.0.0.0/0.0.0.0

icp_access allow N1

icp_access allow N2

icp_access deny ALL

############# old version setting ###########

#httpd_accel_single_host off

#httpd_accel_host 221.122.76.96

#httpd_accel_port 80

#httpd_accel_with_proxy on

#httpd_accel_user_host_header on

############### other setting ##########

forwarded_for off

coredump_dir /usr/local/squid/var/cache

quick_abort_min 16 KB

quick_abort_max 16 KB

quick_abort_pct 95

error_directory /usr/local/squid/share/errors/en-us/

5. 创建启动脚本并且注册为系统服务

[root@squid ~]# vi /etc/init.d/squid(内容如下)

#!/bin/bash

# chkconfig: - 90 25

# description: Squid

case "$1" in

start)

if [ -f /var/run/squid/squid.pid ]

then

echo " the squid serve is running now,please stop it fisrt!"

else

/usr/local/squid/sbin/squid -s

fi

;;

stop)

rm -rf /var/run/squid/squid.pid

killall -9 squid

;;

status)

if [ -f /var/run/squid/squid.pid ]

then

echo " the squid serve is running now"

else

echo " the squid serve not running now"

fi

;;

restart)

# rm -rf /var/run/squid/squid.pid

#killall -9 squid

#/usr/local/squid/sbin/squid -s

e a

echo b

echo c

;;

Esac

[root@squid ~]# chmod +x /etc/init.d/squid

[root@squid ~]# chkconfig --add squid

[root@squid ~]# chkconfig --levels 2345 squid on

6. 启动服务

[root@squid ~]# service squid start

7. 测试:在一台测试机上把域名www.qubaoquan.com绑定到192.168.10.2上,然后再浏览器访问:www.qubaoquan.com就会出现192.168.10.1上面的web页面

8. 查看缓存命中率的方法:[root@squid ~]# /usr/local/squid/bin/squidclient -p 80 mgr:info

Share
分类: Linux 技术 标签: , , ,

摘录的十个最牛X的linux命令

2010年11月1日 无风的飘逸 1 条评论

下面是来自 Commandlinefu 网站由用户投票决出的 10 个最酷的 Linux 单行命令,希望对你有用。

1.

sudo !!

以 root 帐户执行上一条命令。
2.

python -m SimpleHTTPServer

利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000 访问。
3.

:w !sudo tee %

在 Vim 中无需权限保存编辑的文件。
4.

cd -

更改到上一次访问的目录。
5.

^foo^bar

将上一条命令中的 foo 替换为 bar,并执行。
6.

cp filename{,.bak}

快速备份或复制文件。
7.

mtr google.com

traceroute + ping。
8.

!whatever:p

搜索命令历史,但不执行。
9.

$ssh-copy-id user@host

将 ssh keys 复制到 user@host 以启用无密码 SSH 登录。
10.

ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg

把 Linux 桌面录制为视频。

Share
分类: Linux 技术 标签: ,

问有所答:如何列出服务器当前绑定的所有域名

2010年10月7日 无风的飘逸 1 条评论

那怎么查我们有几个什么空间?

怎么查空间是挂哪些站?

如何列出服务器当前绑定的所有域名?

如何列出服务器当前绑定的所有网站?

sjfile=`locate httpd.conf`
cat $sjfile | grep ServerName
cat $sjfile | grep ServerAlias

for:

Share

最全的服务器自动备份脚本

2010年7月18日 无风的飘逸 1 条评论

1. FTP自动登录批量下载文件。

#####从ftp服务器上的/home/data 到 本地的/home/databackup####

#!/bin/bash 

ftp -n<<! 

open 192.168.1.171

user guest 123456 

binary 

cd /home/data 

lcd /home/databackup 

prompt 

mget * 

close 

bye 

!

2. FTP自动登录上传文件。

####本地的/home/databackup to ftp服务器上的/home/data####

#!/bin/bash 

ftp -n<<! 

open 192.168.1.171

user guest 123456 

binary 

hash

cd /home/data 

lcd /home/databackup 

prompt 

mput * 

close 

bye 

!

3. FTP自动登录下载单个文件。

####ftp服务器上下载/home/data/a.sh to local /home/databackup####

#!/bin/bash 

ftp -n<<! 

open 192.168.1.171

user guest 123456 

binary 

cd /home/data 

lcd /home/databackup 

prompt 

get a.sh a.sh 

close 

bye 

!

4. FTP自动登录上传单个文件。

####把本地/home/databachup/a.sh up ftp /home/databackup 下####

#!/bin/bash 

ftp -n<<! 

open 192.168.1.171

user guest 123456 

binary 

cd /home/data 

lcd /home/databackup 

prompt 

put a.sh a.sh 

close 

bye 

!

小结:把以上脚本另存为文件加入到crontab中即可实现FTP自动上传、下载文 件。

注解:

1. -n 不受.netrc文件的影响。(ftp默认为读取.netrc文件中的设定)

2. << 是使用即时文件重定向输入。

3. !是即时文件的标志它必须成对出现,以标识即时文件的开始和结尾。

Share
分类: Linux 技术 标签: , ,

Linux 下的 Zen Cart 安全脚本

2010年2月24日 无风的飘逸 5 条评论

#!/bin/bash
echo "install some setting for zen cart because of some secure reason..."
for site in /data0/htdocs/*;do
  if [ -d $site ]; then
    if [ -f $site/includes/application_top.php ]; then
      echo $site" is zen cart folder"
      chmod 444 -R $site/docs
      chmod 444 -R $site/extras
      chmod 444 $site/install.txt
      rm -rf $site/download
      rm -rf $site/media
      rm -rf $site/pub
抱歉,只有对本文发表过评论才能阅读隐藏内容

Share

mysql服务器主从同步配置

2010年2月22日 无风的飘逸 没有评论

Mysql主从配置

1.         主mysql配置:

grant replication slave on *.* to replication@10.20.137.148 identified by '123456';

vi /usr/local/mysql/my.cnf

log-bin=mysql-bin

同步的数据库

binlog-do-db=star

不同步的数据库

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

binlog-ignore-db=test

2.         从mysql配置

log-bin=mysql-bin

server-id       = 2

master-host     =  10.20.137.150

master-user     =  replication

master-password =  123456

同步的数据库

binlog-do-db=star

不同步的数据库

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

binlog-ignore-db=test

3.         检查

主mysql:

mysql> show master status\G

*************************** 1. row ***************************

            File: mysql-bin.000005

        Position: 106

    Binlog_Do_DB: star

Binlog_Ignore_DB: information_schema,mysql,test

1 row in set (0.00 sec)

从mysql:

mysql> show slave status\G

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 10.20.137.150

                  Master_User: replication

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000005

          Read_Master_Log_Pos: 106

               Relay_Log_File: test02-relay-bin.000012

                Relay_Log_Pos: 251

        Relay_Master_Log_File: mysql-bin.000005

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB: star

          Replicate_Ignore_DB: information_schema,mysql,test

           Replicate_Do_Table:

       Replicate_Ignore_Table:

      Replicate_Wild_Do_Table:

  Replicate_Wild_Ignore_Table:

                   Last_Errno: 0

                   Last_Error:

                 Skip_Counter: 0

          Exec_Master_Log_Pos: 106

              Relay_Log_Space: 450

              Until_Condition: None

               Until_Log_File:

                Until_Log_Pos: 0

           Master_SSL_Allowed: No

           Master_SSL_CA_File:

           Master_SSL_CA_Path:

              Master_SSL_Cert:

            Master_SSL_Cipher:

               Master_SSL_Key:

        Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

                Last_IO_Errno: 0

                Last_IO_Error:

               Last_SQL_Errno: 0

               Last_SQL_Error:

1 row in set (0.00 sec)

4.         服务器管理

       3台测试服务器地址:

              test01.fbikey.com

              test02.fbikey.com

              test03.fbikey.com

              root / BqqAuJTmXNUz3LXzJyHQfskB7DjdE99o

       mysql用户和密码:

              sitemanager / UnHGIyDAeID2aVHP6qJv

       进入mysql:

              /usr/local/mysql/bin/mysql –u sitemanager -pUnHGIyDAeID2aVHP6qJv

       启动 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &

       上面3台测试服务器需要从web8.fbikey.com跳转

              root / 23r9&*#hfcnadhb23ad939g0cq2UFH28

5.         参考

http://blog.sina.com.cn/s/blog_474cf12b0100fbp7.html

http://myreligion.javaeye.com/blog/366508

http://kiddymeet.blog.51cto.com/20194/199185

http://www.ai77.org/archives/430

http://hi.chinaunix.net/?uid-227005-action-viewspace-itemid-39545

http://blog.chinaunix.net/u/25969/showart_723396.html

http://www.joinphp.cn/blog/?p=70

http://www.joinphp.cn/blog/?p=75

编者注:如果想让从服务器主动认识主服务器上的新建数据库事件,那么请将binlog-do-db= 的值留空即可!

Share
分类: Linux 技术 标签: ,

linux通过重新编译php来安装php-soap

2010年2月4日 无风的飘逸 3 条评论
首先安装完php后最好保留当时安装的文件,比如我的路径/export1/soft
cd php-5.1.6/ext/soap
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-soap
make
make install
编译后的soap.so文件保存在了/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922目录下
修改php.ini文件
  手工修改:查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./"
  修改为extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20050922/"
  并在此行后增加如下,然后保存:
  extension = "soap.so"
重新启动apache,ok 我们就已经能看到扩展的soap模块了。
如果还要扩展别的模块可以一次类推,这里还有点要说明,如果做了zend,php.ini文件是在/usr/local/php/etc下的,但是我们这边重新编译后,它回放到/usr/local/php/lib下。所以这里要注意一下。
Share
分类: Linux 技术 标签: , ,

Linux FTP如何关闭上传确认(prompt)

2009年12月20日 无风的飘逸 没有评论

今天因工作需要使用ftp上传一大批图片到远程服务器,是将一整个目录下的图片全部都上传到远程服务器(一个虚拟主机的FTP),就用mput命令,默认的情况下,每上传一个文件都输入一下y来确认,俺没有时间进行这样搞(几千张图片哦),不想每一个文件都确认一下,就需要在命令模式,并登录系统后用prompt来关闭交互模式:

ftp>prompt
切换交谈式指令(使用mput/mget 时不用每个文件皆询问yes/no)

这样就可以使用 mput *让它慢慢上传…喝茶去…

注:

ftp> help prompt
prompt force interactive prompting on multiple commands

ftp> prompt
Interactive mode off.
ftp> prompt
Interactive mode on.
ftp> prompt
Interactive mode off.
ftp>

从上例也可以看出不任何参数就可以进行开发或关闭的设备,每执行一次,状态就会改变。

原文来自we are linuxer ,该页显示有问题,怕死链不好,就没有敢挂上来给各位看

Share
分类: Linux 技术 标签: , ,