Archive for the ‘linux’ Category

linux自动备份mysql并上传到远程ftp脚本

星期五, 七月 9th, 2010

生产需要,在cent os 5.4下自动备份mysql数据库并上传到远程ftp,花了点时间,脚本如下:

#!/bin/bash 
#auto ftp bakup
#by xhat 2010.06.08
 
#要备份的数据库
DBName=wwwdbname
 
#ftp账号信息
ftphost="test.com"
ftpuser=username
ftppass=passwd
 
#mysql账号信息
DBUser=root 
DBPasswd=123456
 
BackupPath=./
 
NewFile="$BackupPath"db$(date +%y%m%d).tar.gz 
DumpFile="$BackupPath"db$(date +%y%m%d).sql 
OldFile="$BackupPath"db$(date +%y%m%d --date='1 days ago').tar.gz 
#LogFile="$BackupPath"db$(date +%y%m%d --date='1 days ago').txt
 
echo "---------------------------" 
echo $(date +"%y-%m-%d %H:%M:%S")   
echo "---------------------------"   
 
#删除 
if [ -f $OldFile ]; then 
    
rm -f $OldFile
    
echo "[$OldFile]Delete Old File Success!"
fi 
 
#新 
if [ -f $NewFile ]; then 
    
echo "[$NewFile] 已经存在,不再备份! " 
else
    /
opt/mysql/mysqldump -u$DBUser -p$DBPasswd $DBName > $DumpFile
    
sleep 5
    
tar czvf $NewFile $DumpFile
    
rm $DumpFile -rf
    
echo "[$NewFile]备份成功"
fi
 
echo "打开ftp"
ftp -i -in <<!
open $ftphost 21
user $ftpuser $ftppass
cd /           
mput *.tar.gz
bye
!
 
echo "备份完成"

完成上面脚本后,在crontab里面加入每天凌晨定时执行即可。
10 3 * * * /opt/bak/mybak

服务器更换为nginx

星期四, 六月 24th, 2010

blog所在服务器更换成nginx,速度应该是快多了。感谢非凡

centos 5.5 错误修复方法:Will not restore a file with more than one hard link (/etc/resolv.conf) No such file or directory

星期四, 六月 10th, 2010

CentOS5.5,今天刚遇到的问题总结一下。
症状:服务器ping不通,所有网络连接失效,重启后正常。此现象反复出现,解决办法:
查看日志:
vim /var/log/messages 出现以下情况:
Jun 9 09:00:10 localhost restorecond: Will not restore a file with more than one hard link (/etc/resolv.conf) No such file or directory

分析:hard link没有正常建立,重新建立即可。

解决办法:
1. $ ls -i /etc/resolv.conf #get inode
2. 8292064 /etc/resolv.conf
3. $ sudo find /etc -inum 8292064#find hard link
4. Password:
5. /etc/sysconfig/networking/profiles/default/resolv.conf
6. /etc/resolv.conf
7. $ sudo /usr/sbin/lsof|grep resolv.conf #make sure it is not open
8. $ sudo rm /etc/sysconfig/networking/profiles/default/resolv.conf #delete
9. $ sudo restorecon /etc/resolv.conf
10. $ sudo ln /etc/resolv.conf /etc/sysconfig/networking/profiles/default/resolv.conf #recreate hard link

linux下自动校准服务器时间

星期一, 十二月 1st, 2008

服务器时间一直不准,只是没太注意,积累时间长了,才发现原来服务器时间与北京时间已经错了半个小时了。于是无论如何也要把这个问题搞定,查阅了相关资料,简单而完美解决。
在root下输入:crontab -e,在打开的窗口中输入以内容:

30 7 * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1

意思是每天的7点30分自动与ntp服务器同步,当然ntp服务器很多,可以自由选择。

2010.2.22更新:新发现教育网ntp服务器地址:time.edu.cn

把ssh做成sock代理的详细方法

星期六, 十一月 8th, 2008

近几天为这事困扰了一阵子,终于找到资料,完美解决了这个问题。

假设你的ssh账号为username,密码为password,地址是server。
1.客户机为linux,很好办,打开终端:

#ssh -D 1080 Username@Server

然后在浏览器或相关软件配置socks5,地址为127.0.0.1,端口为1080即可,当然这里端口可以是随意没有被占用的。
2.客户机为windows,需要辅助的putty和plink。打开命令行到两个软件的目录:

plink -N Username@Server -pw Password -D 127.0.0.1:1080

请将Username Server Password三处改为您自己登陆服务器的用户名、服务器地址和密码。并保持该cmd窗口处于打开状态。然后配置浏览器或其他应用的socks5即可,地址127.0.0.1,端口1080。putty和plink下载地址

干什么用就不细说了,上网必备的瑞士军刀(良民一,需要穿墙的内容俺是不看的。体谅go.v)。

freebsd7.0使用bash带色彩显示

星期一, 三月 10th, 2008

安装bash:

pkg_add -r bash

whereis bash

/usr/ports/shells/bash # make install clean

登陆默认shell为bash: chsh -s bash

同理安装gnuls:

#cd /usr/ports/misc/gnuls
#make install clean

在/etc/profile文件中添加:

alias ls = "gnuls –color

"

 

rhel5大内存支持

星期天, 三月 9th, 2008

以前总以为内核的编译很麻烦,试试才知道如此简单;以前以为写一个功能较全的函数会比较麻烦,写了才知道没那么难。我想很多事情是我们把它想太难了,在做好之前已经给自己下了紧箍咒。

rhel5默认内核安装在超过4G的服务器上,会出现内存认不完整的现象,解决办法则是重新编译内核,打开highmemrey的64G选项。

make configmenu

/64g

linux下如何进行释放内存

星期天, 二月 24th, 2008

这一阵子对linux学习不少,因为遇到了不少的问题—-都是一个相对相互的过程。所以我在哪里好像写过一句话:我们无非是遇到些问题,然后解决它罢了。

通过对discuz的二次开发,渐渐领悟了不少mvc的思想,虽然有质的飞跃,但我肯定这只是开始,还有很多东西需要学习和探讨才能明白。打算开始漫长的zf之旅。谁再说php没有开发模式,那只是大部分php programer对开发模式的了解甚少罢了,毕竟平凡的占多数。

谈谈主题:linux下如何释放内存?

这一段调试php程序总是见服务器内存占用98%左右,很少下降,心里就范迷惑,莫非内存太小不够用么,服务器可是4G内存啊,两个4核cpu怎么可能出现这么高的内存占用?后来查了一下,发现linux与win的内存方法使用相差很大。windows下内存是使用多少就拿来多少内存用;linux是先把内存尽可能占用,然后再重新分配给各个应用,分配完后剩下的内存用来存放各种缓存,例如grep这样的查询(我正迷惑前几天的大目录grep速度超快)就可以利用内存缓存大大提高系统文件交换速度。这样以来就豁然开朗了。完全不用担心内存被占用完。

如果你很无聊的想释放内存,可以使用这个命令:

echo 1 > /proc/sys/vm/drop_caches

对比下释放前后内存占用情况,很爽哦~。释放前最好使用下sync命令以防数据丢失。