存档

文章标签 ‘linux’

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

2010年7月18日 邹清水 没有评论

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/Bookmark
分类: Linux 技术 标签: , ,

Linux 下的 Zen Cart 安全脚本

2010年2月24日 邹清水 2 条评论

#!/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/Bookmark

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/Bookmark
分类: Linux 技术 标签: ,

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

2010年2月4日 邹清水 2 条评论
首先安装完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/Bookmark
分类: 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/Bookmark
分类: Linux 技术 标签: , ,

SHELL编程进阶——IF句式

2009年12月17日 邹清水 没有评论
linux if命令
   无论什么编程语言都离不开条件判断。SHELL编程命令也不例外。 今天做老总的博客备份就用到这个了,找来资料救急一下。      if list then
          do something here
      elif list then
          do another thing here
      else
         do something else here
      fi
   

EX1:

#!/bin/sh

SYSTEM=`uname -s`    #获取操作系统类型,我本地是linux

if [ $SYSTEM = "Linux" ] ; then     #如果是linux的话打印linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then   
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi     #ifend

基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。

1 字符串判断

str1 = str2      当两个串有相同内容、长度时为真
str1 != str2      当串str1和str2不等时为真
-n str1        当串的长度大于0时为真(串非空)
-z str1        当串的长度为0时为真(空串)
str1           当串str1为非空时为真

2 数字的判断

int1 -eq int2    两数相等为真
int1 -ne int2    两数不等为真
int1 -gt int2    int1大于int2为真
int1 -ge int2    int1大于等于int2为真
int1 -lt int2    int1小于int2为真
int1 -le int2    int1小于等于int2为真

3 文件的判断

-r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真

3 复杂逻辑判断

-a         与
-o        或
!        非

结尾

    语法虽然简单,但是在SHELL里使用的时候,他的功能变得强大了。
纯粹为了备忘,绝非恶意转载,文章出处:越来越好

  • Share/Bookmark
分类: Linux 技术 标签: , ,

做了一个SCP和软链接的测试

2009年11月18日 邹清水 没有评论

今天做了一个软件 链接在SCP下的测试;
使用SCP传输一个文件夹的时候,如果该文件下含有软链接,则会把这个软件 链接当成一个真实的“文件(夹)”进行处理。
如,我的网站根目录下有一个images软链接,是连接到/data0/images 的,我使用SCP传输这个网站的时候,/data0/images里的文件全部跑到网站根目录的images下了。
想想,如果传输的站群都有同样的一个软链接,那就会有无数个images文件夹被复制,产生大量的冗余数据。可怕!

  • Share/Bookmark
分类: Linux 技术 标签: ,

centOS服务器的时区设置

2009年11月15日 邹清水 没有评论

买来的服务器,时区五花八门,实在不好管理。
今天决心将他们统一成西六区,可是西六区的城市是哪个呢?
终于打到了,原来是CST
现在开始配置服务器的时区。(为了节省时间,我把命令写在记事本里,然后每台服务器的ssh窗口里都粘贴一次,哈哈哈)
这样做的好处在于,我只要检查一次我的命令就可以了,其它的就一样的了。
5:52:58 开始设置时区,所有服务器的时间均为GMT-6(CST)时区的时间
一、 安装ntp时间同步服务
  yum install -y ntp
二、 设置时区为CST
cp /usr/share/zoneinfo/CST6CDT /etc/localtime
三、 手动同步一次时间
ntpdate us.pool.ntp.org

  • Share/Bookmark
分类: Linux 技术, 邹清水 标签: , ,

Linux 下如何快速找到文件_locate命令详解

2009年11月15日 邹清水 没有评论

我在linux下,不是很熟悉使用find的命令,所以比较习惯用locate命令。

不过这次iredos由于精简的原因,没有安装locate包,

我尝试yum install locate,结果没有这个包。

yum list | grep locate

yum install mlocate

updatedb

这个时候,你就可以使用locate来查找文件。

  • Share/Bookmark
分类: Linux 技术 标签: ,

教你怎么看top命令-linux进度

2009年11月4日 邹清水 没有评论

在linux里执行top命令,看得我眼都花了,特地去找了这个方面的知识,收藏起来以备急用!
Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s): 0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si

Mem: 191272k total 物理内存总量
173656k used 使用的物理内存总量
17616k free 空闲内存总量
22052k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量
123988k cached 缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。

进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h

很可惜,没有hi和si的解释。

  • Share/Bookmark
分类: Linux 技术 标签: ,