<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>meisw's blog</title>
		<link>http://meisw.wdlinux.cn//</link>
		<description>工作,学习,生活,这里将会有一些记录.     备用域名:http://meisw.wdlinux.cn</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Fri, 05 Jun 2026 06:07:11 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://meisw.wdlinux.cn//show-250-1.html</guid>
			<title>定期清除主mysql里的日志文件</title>
			<author>admin</author>
			<description><![CDATA[<p>#!/bin/bash<br />
# water QQ:5846690<br />
MYSQL=&quot;/www/servers/mysql&quot;<br />
MYSQL_BIN=$MYSQL/bin/mysql<br />
MYSQL_DATA=$MYSQL/var<br />
USER=&quot;root&quot;<br />
PASS=&quot;password&quot;<br />
CFL=&quot;/tmp/mm.log&quot;</p>
<p>function SAVE_CF {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $MYSQL_BIN -u$USER -p&quot;$PASS&quot; -e &quot;show master status\G&quot; | grep &quot;File:&quot; | awk -F&quot;: &quot; '{print $2}' &gt; $CFL<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;save cf sucess&quot;<br />
}</p>
<p>if [[ -f $CFL ]];then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CF=`cat $CFL`<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [[ -f $MYSQL_DATA/$CF ]];then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $MYSQL_BIN -u$USER -p&quot;$PASS&quot; -e &quot;PURGE MASTER LOGS TO '$CF';&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;del log sucess&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAVE_CF<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAVE_CF<br />
fi</p>
<p>加入cron,每周执行一次</p>
<p>05 3 * * 1 root /bin/mysql_log_clear.sh</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-250-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-6-1.html">脚本代码</category>
			<pubDate>2010-05-19 12:06</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-240-1.html</guid>
			<title>shell产生随机数，字符串</title>
			<author>admin</author>
			<description><![CDATA[<p>#!/bin/bash<br />
MATRIX=&quot;<a href="mailto:0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@#$%">0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@#$%</a>^&amp;*()_+=&quot;<br />
LENGTH=&quot;9&quot;<br />
while [ &quot;${n:=1}&quot; -le &quot;$LENGTH&quot; ]<br />
do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS=&quot;$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let n+=1<br />
done<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;$PASS&quot;<br />
exit 0</p>
<p>&nbsp;</p>
<p>或用mkpasswd</p>
<p>echo $RANDOM,产生数字串</p>
<p>&nbsp;</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-240-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-6-1.html">脚本代码</category>
			<pubDate>2010-03-01 17:56</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-222-1.html</guid>
			<title>封超过100个连接的IP</title>
			<author>admin</author>
			<description><![CDATA[<p>封超过100个连接的IP：</p>
<p>#!/bin/sh<br />
/bin/netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -rn|grep -v -E '172.16|127.0'|awk '{if ($2!=null &amp;&amp; $1&gt;100) {print $2}}'&gt;/tmp/dropip<br />
for i in $(cat /tmp/dropip)<br />
do<br />
/sbin/iptables -I INPUT&nbsp; -p tcp -m tcp -s $i --dport 80 --syn -j REJECT<br />
echo &quot;$i kill at `date`&quot;&gt;&gt;~river/ddos<br />
done</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-222-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-6-1.html">脚本代码</category>
			<pubDate>2009-08-12 13:33</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-209-1.html</guid>
			<title>利用tcpdump简易抓取MySQL Query Log</title>
			<author>admin</author>
			<description><![CDATA[<p>原文参考：http://www.davidodwyer.com/category/tags/tcpdump-mysql</p>
<pre class="plaintext_pre">#!/bin/bash
tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(&lt;&gt;) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i) {
if (defined $q) { print &quot;$q\n&quot;; }
$q=$_;
} else {
$_ =~ s/^[ \t]+//; $q.=&quot; $_&quot;;
}
}'</pre>]]></description>
			<link>http://meisw.wdlinux.cn//show-209-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-6-1.html">脚本代码</category>
			<pubDate>2009-04-15 13:51</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-162-1.html</guid>
			<title>一个比较全面的创建 XMLHttpRequest 的代码:</title>
			<author>admin</author>
			<description><![CDATA[<p><br />
function getXmlHttpPrefix() {<br />
if (getXmlHttpPrefix.prefix)<br />
return getXmlHttpPrefix.prefix;<br />
<br />
var prefixes = [&quot;MSXML2&quot;, &quot;Microsoft&quot;, &quot;MSXML&quot;, &quot;MSXML3&quot;];<br />
var o;<br />
for (var i = 0; i &lt; prefixes.length; i++) {<br />
try {<br />
// try to create the objects<br />
o = new ActiveXObject(prefixes[i] + &quot;.XmlHttp&quot;);<br />
return getXmlHttpPrefix.prefix = prefixes[i];<br />
}<br />
catch (ex) {};<br />
}<br />
<br />
throw new Error(&quot;Could not find an installed XML parser&quot;);<br />
}<br />
<br />
//////////////////////////<br />
// Start the Real stuff //<br />
//////////////////////////<br />
<br />
<br />
// XmlHttp factory<br />
function XmlHttp() {}<br />
<br />
XmlHttp.create = function () {<br />
try {<br />
if (window.XMLHttpRequest) {<br />
var req = new XMLHttpRequest();<br />
<br />
// some versions of Moz do not support the readyState property<br />
// and the onreadystate event so we patch it!<br />
if (req.readyState == null) {<br />
req.readyState = 1;<br />
req.addEventListener(&quot;load&quot;, function () {<br />
req.readyState = 4;<br />
if (typeof req.onreadystatechange == &quot;function&quot;)<br />
req.onreadystatechange();<br />
}, false);<br />
}<br />
<br />
return req;<br />
}<br />
if (window.ActiveXObject) {<br />
return new ActiveXObject(getXmlHttpPrefix() + &quot;.XmlHttp&quot;);<br />
}<br />
}<br />
catch (ex) {}<br />
// fell through<br />
throw new Error(&quot;Your browser does not support XmlHttp objects&quot;);<br />
};&nbsp;</p>
<p>-------------------------------</p>
<p>var xmlHttp=new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;); <br />
var xmlHttp=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); <br />
var xmlHttp=new ActiveXObject(&quot;MSXML.XMLHTTP&quot;); <br />
var xmlHttp=new ActiveXObject(&quot;MSXML3.XMLHTTP&quot;); <br />
这几个代码都有可能, 上面的代码就遍历这些对象选择一个创建成功的出来, 区别就是操作系统带的 MSXML 包的版本不一样, 这些包是 ActiveX 控件, IE 和很多 Windows 应用都可能用到它. 对于 Mozilla, Firefox, 直接用 <br />
var xmlHttp = new XMLHttpRequest();<br />
就可以了.</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-162-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-6-1.html">脚本代码</category>
			<pubDate>2008-12-17 13:45</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-101-1.html</guid>
			<title>一个备份脚本(转)</title>
			<author>admin</author>
			<description><![CDATA[<p><font face="宋体" size="2">mybackup.sh <br />
#!/bin/sh <br />
umount&nbsp;/mnt/bak <br />
mount&nbsp;/dev/sdb1&nbsp;/mnt/bak <br />
<br />
if&nbsp;[&nbsp;`date&nbsp;+%d`&nbsp;=&nbsp;'01'&nbsp;]&nbsp;&nbsp;&nbsp;#每月1号进行完全备份 <br />
then <br />
&nbsp;&nbsp;bakdir=&quot;/mnt/bak/daybak/month/&quot;`date&nbsp;+%m%d` <br />
&nbsp;&nbsp;zl=&quot;&quot;&nbsp;&nbsp;#进行完全备份 <br />
else <br />
&nbsp;&nbsp;bakdir=&quot;/mnt/bak/daybak/&quot;`date&nbsp;+%d` <br />
&nbsp;&nbsp;zl=&quot;-N&nbsp;&quot;`date&nbsp;+'%Y-%m-01&nbsp;00:00:01'`;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#差异备份 <br />
&nbsp;#zl=&quot;-N&nbsp;&quot;`date&nbsp;-d&nbsp;'-1&nbsp;day'&nbsp;+'%Y-%m-%d&nbsp;00:00:01'`&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#日增量备份 <br />
fi <br />
<br />
tmpbakdir=${bakdir}tmp <br />
rm&nbsp;-rf&nbsp;${tmpbakdir} <br />
mkdir&nbsp;${tmpbakdir} <br />
tar&nbsp;&quot;${zl}&quot;&nbsp;-czf&nbsp;${tmpbakdir}/www.tgz&nbsp;/var/www/html <br />
tar&nbsp;&quot;${zl}&quot;&nbsp;-czf&nbsp;${tmpbakdir}/etc.tgz&nbsp;/etc <br />
tar&nbsp;&quot;${zl}&quot;&nbsp;-czf&nbsp;${tmpbakdir}/mysql.tgz&nbsp;/var/lib/mysql <br />
tar&nbsp;&quot;${zl}&quot;&nbsp;-czf&nbsp;${tmpbakdir}/home.tgz&nbsp;/home <br />
tar&nbsp;&quot;${zl}&quot;&nbsp;-czf&nbsp;${tmpbakdir}/name.tgz&nbsp;/var/name <br />
rm&nbsp;-rf&nbsp;$bakdir <br />
mv&nbsp;$tmpbakdir&nbsp;$bakdir <br />
umount&nbsp;/mnt/bak <br />
<br />
把mybackup.sh&nbsp;放到&nbsp;/etc/cron.daly&nbsp;中即实现可月循环&nbsp;差异/增量&nbsp;备份 <br />
为方便恢复数据我使用了差异备份,如果想节约空间可以使用日总量备份,不过那样恢复数据时刻就要麻烦点了,另外你也可以很容易把上面的脚本改为周循环 <br />
<br />
事项增量备份的另外方法是利用find命令， <br />
例如只备份一天前修改过的文件 <br />
find&nbsp;/var/www&nbsp;-type&nbsp;f&nbsp;-mtime&nbsp;-1&nbsp;-print&gt;/tmp/filelist.txt&nbsp; <br />
tar&nbsp;-cz&nbsp;-T&nbsp;/tmp/filelist.txt&nbsp;-f&nbsp;/mnt/bak/www.tgz </font></p>]]></description>
			<link>http://meisw.wdlinux.cn//show-101-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-6-1.html">脚本代码</category>
			<pubDate>2008-01-12 14:43</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-86-1.html</guid>
			<title>一些很简单的脚本</title>
			<author>admin</author>
			<description><![CDATA[<p>想知道系统每天的每个时间的负载,内存使用,可总不能整天都连着终端看吧.那有什么办法呢?很简单,可以用下面的shell,加入crontab,每10分钟或一段时间,运行一次,保存到一个文本文件,到时查看这个文本文件就知道一天下来,系统的大概负载情况了.如果你要得更完美一点,可以根据这些数据,用PHP画个图片来.我懒,只想知道结果,不求漂亮,哈哈</p>
<p>#!/bin/bash<br />
dt=`date '+%Y%m%d'`<br />
ct=`date '+%H%M'`<br />
uptime &gt;&gt; /www/$dt&quot;_c.txt&quot;</p>
<p>echo $ct &gt;&gt; /www/$dt&quot;_m.txt&quot;<br />
free -mt | grep &quot;Mem&quot; &gt;&gt; /www/$dt&quot;_m.txt&quot;</p>
<p>&nbsp;</p>
<p>FTP自动上传</p>
<p>#!/bin/bash<br />
ftp -n&lt;&lt;!<br />
open&nbsp;IP 21<br />
user username password<br />
prompt<br />
binary<br />
cd path<br />
mput *.tar.gz<br />
close<br />
bye<br />
!</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-86-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-6-1.html">脚本代码</category>
			<pubDate>2007-11-03 10:21</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-85-1.html</guid>
			<title>Mysql 数据库在Linux下的自动备份SHELL</title>
			<author>admin</author>
			<description><![CDATA[<div class="t_msgfont" id="message7536418">MYSQL的自动备份脚本，已测试通过。<br />
<br />
可以将这个脚本放进crontab，每天凌晨执行一次，自动备份将生成压缩文件 。 <br />
<br />
只保留最近七天的备份在服务器上<br />
<br />
这是我写的第一个脚本，欢迎大家指正。<br />
<br />
这里主要参考了aspbiz 的贴子：<a href="http://www.chinaunix.net/jh/17/418474.html" target="_blank">http://www.chinaunix.net/jh/17/418474.html</a><br />
<br />
以下是脚本内容：<br />
<br />
Start---------------------------------------------------------------------------<br />
<br />
#!/bin/bash <br />
#This mysql backup script for&nbsp;&nbsp;daily<br />
#environment：redhat as 4 <br />
#Powered by灰熊<br />
#2007-10-31<br />
<br />
<br />
#定义有备份的数据库名<br />
dbname=mysql<br />
<br />
#定义备份数据库时使用的用户名和密码<br />
dbuser=root<br />
dbpasswd=12345a<br />
<br />
#数据库备份的路径<br />
backuppath=/tmp/db/<br />
<br />
#数据库备份日志文件存储的路径<br />
logfile=/tmp/db/db.log<br />
<br />
#以当前的时间作为备份的数据库命名。<br />
dumpfile=$(date +%y%m%d%H%M)<br />
<br />
#这个函数用来备份数据库<br />
back_db()<br />
{<br />
&nbsp; &nbsp;#将备份的时间、数据库名存入日志<br />
&nbsp; &nbsp;echo $(date +%y%m%d%H%M)&quot; Beginning database &quot;${dbname}&quot; backup-----------------------------------&quot; &gt;&gt;${logfile}<br />
<br />
&nbsp;&nbsp;#备份数据库，如果有错误信息也记入日志。<br />
&nbsp;&nbsp;mysqldump -u${dbuser} -p${dbpasswd} ${dbname} &gt;${backuppath}${dumpfile}.sql 2&gt;&gt; ${logfile}<br />
<br />
&nbsp;&nbsp;#将备份数据库文件库压成ZIP文件，并删除先前的SQL文件。如果有错误信息也记入日志。<br />
&nbsp;&nbsp;tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql &amp;&amp; rm ${dumpfile}.sql 2&gt;&gt; ${logfile}<br />
<br />
&nbsp;&nbsp;#将压缩后的文件名存入日志。<br />
&nbsp;&nbsp;echo &quot;backup file name:&quot;$(date +%y%m%d%H%M)&quot;.tar.gz&quot; &gt;&gt;${logfile}<br />
&nbsp;&nbsp;echo -e &quot;------------------------------\n&quot; &gt;&gt;${logfile}<br />
}<br />
<br />
#这个函数用来删除七天前的数据，注意，这个脚本会删除当前目录下所有的早于七天前的文件，如果把目录搞错了。。。。。。。。。<br />
rm_oldfile()<br />
{<br />
&nbsp;&nbsp;#查找出当前目录下七天前生成的文件，并将之删除<br />
&nbsp;&nbsp;find ./ -type f -mtime +7 -exec rm {} \;<br />
}<br />
<br />
<br />
#切换到数据库备份的目录。如果不做这个操作，压缩文件时有可能会错误<br />
cd ${backuppath}<br />
<br />
#运行备份数据函数<br />
back_db<br />
<br />
#运行删除文件函数<br />
rm_oldfile<br />
<br />
end---------------------------------------------------------------------------</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont">
<div class="t_msgfont" id="message7536472">建议到mysql的man目录下的man1下面执行一下man ./mysqldump.1 看一下里面的内容！<br />
合并成一句<br />
mysqldump .....&nbsp;&nbsp;| gzip -q --best&nbsp;&nbsp;&gt; xxx.gz</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont">
<div class="t_msgfont" id="message7539588">建议把db的name写到一个文本里面,然后增加需要备份的库的时候就可以修改文本了.不需要再修改程序<br />
for dbname in `cat dbnamelist.txt`; do<br />
//backup functions<br />
done</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont">&nbsp;</div>
<div class="t_msgfont">转自CU,觉得还不错</div>
<div class="t_msgfont">&nbsp;</div>
</div>
</div>]]></description>
			<link>http://meisw.wdlinux.cn//show-85-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-6-1.html">脚本代码</category>
			<pubDate>2007-11-03 10:11</pubDate>
		</item>
	</channel>
</rss>
