您的位置:首页 > 其它

配置服务器各种问题笔记

2014-01-14 16:03 225 查看
今天负责开新服和老服迁移,碰到不少问题,做下笔记。

首先使用了一个叫做expect的批量部署工具,

首先定义expect 登陆脚本:

1、login.exp,内容如下(详细的参数就不解释了):

#!/usr/bin/expect -f

set ip [lindex $argv 0 ]

set passwd [lindex $argv 1 ]

set command [lindex $argv 2]

set timeout 1

spawn ssh root@$ip

expect {

"yes/no" { send "yes\r";exp_continue }

"password:" { send "$passwd\r" }

}

expect "*#*" { send "$command\r" }

expect eof

2、创建批量执行脚本auto_exec.sh

#!/bin/sh

#auto exec command

#wugk 20130712

CMD="$*"

for i in `awk '{print $1}' passwd.txt`

do

j=`awk -v I="$i" '{if(I==$1)print $2}' passwd.txt`

expect /data/sh/login.exp $i $j "$CMD"

done

3、建立批量IP、密码文件

cat passwd.txt内容如下:(第一列为IP,第二列为密码)

192.168.1.100 abc_123

192.168.1.101 abc_456

四、测试脚本

直接执行:

1 /bin/sh auto_exec.sh "mkdir -p /tmp/`date +%Y%m%d`"

然后登陆两台服务器查看是否在/tmp/下生产一个以当前系统日期为名称的目录。

具体参考http://www.linuxidc.com/Linux/2013-08/88660.htm

dump数据库的时候,发现一段有趣的脚本:

mysqldump -usmzg -phangzhoudouhun2013smzg awesome1_3 | sed 's/AUTO_INCREMENT=[0-9]*\s/AUTO_INCREMENT=1 /g' >awesome1_3.sql

后面AUTO_INCREMENT改成1

然后就是把sql文件传到另一台机子,本来用scp,却被拒绝了。猜测是端口问题,去测试了下,22端口确实没有被监听,监听的是36000端口。这个我自己还没测试过,有待验证。

然后发现磁盘太满,

1. 定期对重要文件系统扫描,并作对比,分析那些文件经常读写

#ls –lR /home >;files.txt

#diff filesold.txt files.txt

通过分析预测空间的增长情况,同时可以考虑对不经常读写文件进行压缩,以减少占用空间。

2. 查看空间满的文件系统的inodes消耗

#df – i /home

如果还有大量inode可用,说明大文件占用空间,否则是可能大量小文件占用空间。

3. 找出占用空间较大的目录

查看/home 占用的空间

#du –hs /home

查看/home 下占用空间超过1000m

#du |awk '$1>;2000'

4. 找出占用空间较大的文件

#find /home –size +2000k

5. 找出最近修改或创建的文件

先touch一个你想要的时间的文件如下:

# touch -t 08190800 test

#find /home -newer test -print

6. 删除系统日志等

删除生成 core,mbox等文件

#find / -name core|xargs rm –rf

删除日志

#rm -rf /var/log/*

7. 对分区做链接

在有空间的分区,对没有空间分区做链接

#ln -s /home /usr/home

8.找出耗费大量的空间的进程

根据不同的应用,找出对应的进程。分析原因。

9.。检查并修复文件系统

#fsck –y /home

当然这治标不治本,本质是因为mysql数据太大了,所以需要修改mysql默认安装路径

centos 6.2为例:

==========================================

安装MYSQL:

(默认安装路径是/var/lib/mysql)

首先检查系统是否有mysql安装程序

rpm -qa | grep MySQL

如有mysql就运行命令

service mysqld start

系统会自动安装.

安装完成后默认root是没有密码的

需要设置一个root密码

/usr/bin/mysqladmin -u root password '123456'

这时密码已经设置为123456了,可以通过phpmyadmin登录管理

注:这个密码只是root localhost的帐户权限,并没有%权限

添加一个%全权root用户名

==========================================

修改默认存储路径

先查看当前路径,输入mysql -r root -p

登录到mysql里,会提示输入密码123456

输入:

mysql> show variables like '%dir%';



显示路径为/var/lib/mysql

要修改路径首先停止mysql

service mysqld stop

修改/etc/rd.d/init.d/mysqld

找到datadir="$result"在前面加#让它失效

再新建一行算定义路径,输入

datadir="/home/ftp/mysql"

这里以自定义路径/home/ftp为例



修改好后启动mysql,命令service mysqld start

因为修改过了,MYSQL被复位,应该是被视为重装的意思

再次运行

/usr/bin/mysqladmin -u root password '123456'

设置localhost的root密码为123456

检查路径输入mysql -u root -p

输入密码登录到mysql

mysql> show variables like '%dir%';



修改成功

通过phpmyadmin设置权限和新建数据库测试是否修改成功

新建数据库newsql



然后在SSH文件管理器中查看





结果有待验证
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: