工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表全部文章

一生,你做好了多少件事?

最近好忙,也好累.特别是这几天晚上,每晚都2点多才睡.好长时间没有过这么晚睡.想想以前,这好像是家常便饭
昨晚是因为一个小程序,前晚还用着好好的.可今晚的结果就是不对.烦了.还找了好久都不知是啥原因.还以为是采集出问题了,又或是ID乱了等等.就是没想数据库的数据本身有问题.可问题就出在这.晕倒

最近好忙,也想做好多事.可好像很多事都没做好.做着做着就半途而废了
想想这几年的网络生涯,这样的事好像很多.可真想不出哪件是做得很好的.
今晚就在想,一生,你做好了多少件事?
好像大部分人都这样,想做的事很多,但有努力去做,或是有做好的却没几个,甚至是没有.所以才会这么失败.
能很努力,很执着去做一件事,你就会成功.即便不是很伟大,你也会很有成就感.那是一件很快乐的事.
就像<<士兵突击>>里的许木木,他认定的事,就会很努力,很执着去做.

最近老在想一个事.就是做一个网站,自我感觉是很有前景.如做好了.我想,会是一个很"伟大"的事.哈哈
到时能否做好呢?现在还处于构思中.特此标记,要努力去做这件事.

取消windows2003关机提示

每次关闭windows 2003系统时,你总会发现关机原因提示框,不厌其烦“抢占”你的视线,这让喜欢一气呵成关机的你,浑身不自在,不得己,你必须进行如下“手术”,才能“赶走”烦人的关机原因提示窗口。

依次执行……开始……运行……在运行框中输入"gpedit.msc"命令,这时弹出组策略编辑界面,在该界面中,用鼠标左键双击“计算机配置”文件夹|"管理模板"文件夹|"系统"文件夹。

在对应"系统"文件夹窗口中,选中"关闭事件跟踪程序",并用鼠标左键双击,在随后弹出的窗口中,选中“已禁用”选项,最后点击"确定"按钮,就可以与烦人的关机原因提示框“byebye"了。

改过好多次了,但每次都不记得具体的路径,都要google一下.记下了,以后不用搜了

一些很简单的脚本

想知道系统每天的每个时间的负载,内存使用,可总不能整天都连着终端看吧.那有什么办法呢?很简单,可以用下面的shell,加入crontab,每10分钟或一段时间,运行一次,保存到一个文本文件,到时查看这个文本文件就知道一天下来,系统的大概负载情况了.如果你要得更完美一点,可以根据这些数据,用PHP画个图片来.我懒,只想知道结果,不求漂亮,哈哈

#!/bin/bash
dt=`date '+%Y%m%d'`
ct=`date '+%H%M'`
uptime >> /www/$dt"_c.txt"

echo $ct >> /www/$dt"_m.txt"
free -mt | grep "Mem" >> /www/$dt"_m.txt"

 

FTP自动上传

#!/bin/bash
ftp -n<<!
open IP 21
user username password
prompt
binary
cd path
mput *.tar.gz
close
bye
!

Mysql 数据库在Linux下的自动备份SHELL

MYSQL的自动备份脚本,已测试通过。

可以将这个脚本放进crontab,每天凌晨执行一次,自动备份将生成压缩文件 。

只保留最近七天的备份在服务器上

这是我写的第一个脚本,欢迎大家指正。

这里主要参考了aspbiz 的贴子:http://www.chinaunix.net/jh/17/418474.html

以下是脚本内容:

Start---------------------------------------------------------------------------

#!/bin/bash
#This mysql backup script for  daily
#environment:redhat as 4
#Powered by灰熊
#2007-10-31


#定义有备份的数据库名
dbname=mysql

#定义备份数据库时使用的用户名和密码
dbuser=root
dbpasswd=12345a

#数据库备份的路径
backuppath=/tmp/db/

#数据库备份日志文件存储的路径
logfile=/tmp/db/db.log

#以当前的时间作为备份的数据库命名。
dumpfile=$(date +%y%m%d%H%M)

#这个函数用来备份数据库
back_db()
{
   #将备份的时间、数据库名存入日志
   echo $(date +%y%m%d%H%M)" Beginning database "${dbname}" backup-----------------------------------" >>${logfile}

  #备份数据库,如果有错误信息也记入日志。
  mysqldump -u${dbuser} -p${dbpasswd} ${dbname} >${backuppath}${dumpfile}.sql 2>> ${logfile}

  #将备份数据库文件库压成ZIP文件,并删除先前的SQL文件。如果有错误信息也记入日志。
  tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql && rm ${dumpfile}.sql 2>> ${logfile}

  #将压缩后的文件名存入日志。
  echo "backup file name:"$(date +%y%m%d%H%M)".tar.gz" >>${logfile}
  echo -e "------------------------------\n" >>${logfile}
}

#这个函数用来删除七天前的数据,注意,这个脚本会删除当前目录下所有的早于七天前的文件,如果把目录搞错了。。。。。。。。。
rm_oldfile()
{
  #查找出当前目录下七天前生成的文件,并将之删除
  find ./ -type f -mtime +7 -exec rm {} \;
}


#切换到数据库备份的目录。如果不做这个操作,压缩文件时有可能会错误
cd ${backuppath}

#运行备份数据函数
back_db

#运行删除文件函数
rm_oldfile

end---------------------------------------------------------------------------
 
 
建议到mysql的man目录下的man1下面执行一下man ./mysqldump.1 看一下里面的内容!
合并成一句
mysqldump .....  | gzip -q --best  > xxx.gz
 
 
建议把db的name写到一个文本里面,然后增加需要备份的库的时候就可以修改文本了.不需要再修改程序
for dbname in `cat dbnamelist.txt`; do
//backup functions
done
 
 
转自CU,觉得还不错
 

联想X61笔记本中美两地价差15000元

联想X61笔记本中美两地价差15000元

http://tech.sina.com.cn/it/2007-10-31/13301824714.shtml

 

以后都不买联想的产品

让apache为访问文件加上一个超时时间,expires

apache文件所在目录 modules/metadata/mod_expires.c

编译,使用apxs工具

apachepath/bin/apxs -c -i -a mod_expires.c

 编译完后,自动加了LoadModule

httpd.conf配置

<IfModule expires_module>
    ExpiresActive On
    ExpiresByType image/gif "access plus 300 minutes"
    ExpiresByType image/jpeg "access plus 300 minutes"
    ExpiresByType image/png "access plus 300 minutes"
    ExpiresByType text/css "access plus 3 minutes"
    ExpiresByType application/x-shockwave-flash "access plus 300 minutes"
    #ExpiresByType image/gif "access plus 3 minutes"
    #ExpiresByType image/jpeg "access plus 3 minutes"
    #ExpiresByType image/png "access plus 3 minutes"
    #ExpiresByType text/css "access plus 3 minutes"
    #ExpiresByType application/x-shockwave-flash "access plus 3 minutes"
    #ExpiresDefault "now plus 1 day"
</IfModule>

Linux下让apache支持网址中文名字

今天发现,FTP里的中文名字的文件都不能下载.之前就是win的,后来改到Linux,用NTFS加载,再后来,也转为Linux的格式了.

刚弄好时,好像是能下载的,都不知当时是怎么检查的了.而且,前两天才发现,上次整理的过程中,还丢了很多的文件,唉,可现在全都没了.真可惜,有点欲哭无泪的感觉,同时也发现这些文件都不能下载,怪事了

后在网上搜了下资料,就发现了下面这些.

linux下的apache,不支持中文地址的

http://localhost/下载/     或 http://localhost/下载/电子书.rar

要支持中文名字,安装个 mod_encoding 模块就可以了

wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz

http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616

# tar zxfv mod_encoding-20021209.tar.gz
# cp mod_encoding.c.apache2.20020616 mod_encoding-20021209/mod_encoding.c

■ iconv_hook编译和安装

安装mod_encoding前首先需要安装iconv_hook。

$ cd mod_encoding-20021209/lib$ ./configure$ make# make install
完成上面操作后,iconv_hook相关so文件放到/usr/local/lib下面。
要操作系统系统能够搜索到该so文件,需要完成一下几行操作
打开/etc/ld.so.conf文件,添加一行指向iconv_book的所在路径,即"/usr/local/lib"

# vi /etc/ld.so.conf/usr/local/lib
[Esc]、[:]、[w]、[q] 保存退出。

# PATH="$PATH:/sbin"

# ldconfig

■ mod_encoding模块的编译
进入mod_encoding-20021209.tar.gz的解压目录,即mod_encoding-20021209

# ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/include/iconv_hook/
# make
#ls -l mod_encoding.o
查看是否已经生成了mod_encoding.o文件,如果是,则make成功继续下边的操作。
# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook







生成mod_encoding.so文件,将该文件拷贝到你的模块存放目录,一般为${APACHE_HOME}/modules/
# cp mod_encoding.so /usr/local/apache/modules/mod_encoding.so

■ httpd.confd的设定

LoadModule encoding_module modules/mod_encoding.so

<IfModule mod_encoding.c>
  EncodingEngine    on
  NormalizeUsername on
  SetServerEncoding GBK
  DefaultClientEncoding UTF-8 GBK GB2312
  AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
  AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
  AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312
</IfModule>

如顺利完成,上面那些中文都可以下载了

这里只是将所有的中文都转换成UTF-8格式的传输了,我想,如果在加载分区的时候,指定为UTF-8字符来加载,也许可以不用装这个也可以,没测试过,不好下定论.

参考原文 http://blog.51766.com/page/zsc/Weblog/1141808884223?catname=

Can't locate DBI.pm in @INC (@INC contains:

 ./run-all-tests
Can't locate DBI.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr
/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib
/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/per
l5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/s
ite_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/l
ib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/
vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at ./run-all-tests line 36.
BEGIN failed--compilation aborted at ./run-all-tests line 36.

出现这个错误,同上一篇类似,也就是你的DBI模块没装.同样的方法,到ISO文件里找到 perl-DBI-1.40-5.i386.rpm,上传,安装

再次执行,出了新的问题.

 ./run-all-tests
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-th
read-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.
8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/
i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386
-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /
usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_pe
rl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/per
l5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl
.) at (eval 51) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: ExampleP, Proxy, Sponge.
 at /www/servers/mysqlclu/sql-bench/server-cfg line 247

这里就是DBD的问题了.再把 perl-DBD-MySQL-2.9004-3.1.i386.rpm 装一下

但时安装时又出了个错.

rpm -ivh /www/perl-DBD-MySQL-2.9004-3.1.i386.rpm
warning: /www/perl-DBD-MySQL-2.9004-3.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
        libmysqlclient.so.14 is needed by perl-DBD-MySQL-2.9004-3.1.i386
    Suggested resolutions:
        mysql-4.1.7-4.RHEL4.1.i386.rpm

这个是程序的依懒关系,也和版本有关.

到这里,可以按照上面的方法,再一个个找出来安装(比较麻烦),或者干脆加个参数 --nodeps 去掉这个依懒关系的检查.就可以安装了,但这样的话,有可能会安装后也不能正常使用.如果这样,那就办法了,只有一个个找出来装了.