配置服务器各种问题笔记
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文件管理器中查看
结果有待验证
首先使用了一个叫做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文件管理器中查看
结果有待验证
相关文章推荐
- Filezilla server配置FTP服务器中的各种问题与解决方法
- Filezilla server配置FTP服务器中的各种问题与解决方法
- Windows下Djang+Wsgi+Apache配置,各种该相关配置问题的终极解决方案
- centos配置postfix服务器遇到问题
- 关于服务器ssl配置以后,https无法访问的问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- sonar 服务器搭建 遇到各种问题
- .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决
- cygwin下配置android-ndk时遇到的各种问题及解决方案
- postfix邮件服务配置及各种问题解决
- MongoDB配置多个ConfigDB的问题(笔记)
- 笔记之Nginx服务器的安装与配置
- nginx 学习笔记(9) 配置HTTPS服务器--转载
- asp.net 开发问题:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值。
- nginx 学习笔记 - 配置HTTPS服务器
- cacti配置各种问题
- xampp服务器 无法解读html中的php代码 (配置问题)
- SPS安装过程中配置服务器场帐户设置页面不能正常显示以及IIS中SPS管理站点未配置成功问题的原因
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- 服务器宕机问题排除过程笔记