<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Hello,world!</title>
    <link>https://330220.xyz/</link>
    <description>Recent content on Hello,world!</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Mon, 24 Mar 2025 23:16:00 +0800</lastBuildDate>
    <atom:link href="https://330220.xyz/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>修复 Debian 中的 Ping 权限问题</title>
      <link>https://330220.xyz/post/%E4%BF%AE%E5%A4%8D-Debian-%E4%B8%AD%E7%9A%84-Ping-%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98/</link>
      <pubDate>Mon, 24 Mar 2025 23:16:00 +0800</pubDate>
      <guid>https://330220.xyz/post/%E4%BF%AE%E5%A4%8D-Debian-%E4%B8%AD%E7%9A%84-Ping-%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98/</guid>
      <description>&lt;p&gt;在一个512M vps上安装 Debian Trixie后，发现无法使用 ping命令。尝试执行时，收到错误信息：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ping: socket: Operation not permitted&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;并且附加提示可能缺少 cap_net_raw+p 权限或 setuid 设置。&lt;/p&gt;&#xA;&lt;p&gt;不过，使用root用户时ping正常工作，因此问题出在权限上。&lt;/p&gt;&#xA;&lt;p&gt;搜索后，发现两种方法可以启用ping。&lt;/p&gt;&#xA;&lt;h3 id=&#34;更改-sysctl-权限&#34;&gt;更改 sysctl 权限&lt;/h3&gt;&#xA;&lt;p&gt;如果要对一组用户启用 ping，可以运行以下命令：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debian testing 部署 BBR TCP拥塞算法</title>
      <link>https://330220.xyz/post/Debian-testing-%E9%83%A8%E7%BD%B2-BBR-TCP%E6%8B%A5%E5%A1%9E%E7%AE%97%E6%B3%95/</link>
      <pubDate>Wed, 07 Dec 2016 11:05:25 +0800</pubDate>
      <guid>https://330220.xyz/post/Debian-testing-%E9%83%A8%E7%BD%B2-BBR-TCP%E6%8B%A5%E5%A1%9E%E7%AE%97%E6%B3%95/</guid>
      <description>&lt;p&gt;Linux 内核4.9 rc8 之后引入了BBR 算法，按以下步骤可以在KVM VPS上打开&#xA;增加experimental 源&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;deb http://ftp.us.debian.org/debian experimental main&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;安装新版内核:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt update &#xA;apt -t experimental install linux-image-4.9.0-rc8-amd64-unsigned&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;增加内核参数开启BBR:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;echo &amp;#34;net.core.default_qdisc=fq&amp;#34; &amp;gt;&amp;gt; /etc/sysctl.conf&#xA;echo &amp;#34;net.ipv4.tcp_congestion_control=bbr&amp;#34; &amp;gt;&amp;gt; /etc/sysctl.conf&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;保存生效:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sysctl -p&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;执行下面命令如果看到有bbr，即已开启:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sysctl net.ipv4.tcp_available_congestion_control&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;看一下内核模块有没有加载&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;lsmod | grep bbr&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>OpenWRT DHCP分配给客户端指定的DNS地址</title>
      <link>https://330220.xyz/post/OpenWRT-DHCP%E5%88%86%E9%85%8D%E7%BB%99%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%8C%87%E5%AE%9A%E7%9A%84DNS%E5%9C%B0%E5%9D%80/</link>
      <pubDate>Mon, 26 Aug 2013 20:05:41 +0800</pubDate>
      <guid>https://330220.xyz/post/OpenWRT-DHCP%E5%88%86%E9%85%8D%E7%BB%99%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%8C%87%E5%AE%9A%E7%9A%84DNS%E5%9C%B0%E5%9D%80/</guid>
      <description>&lt;p&gt;接口-&amp;gt;LAN-&amp;gt;DHCP服务器-&amp;gt;高级设置-&amp;gt;DHCP选项:&lt;/p&gt;&#xA;&lt;p&gt;设置DHCP的附加选项，例如设定&amp;quot;6,192.168.2.1,192.168.2.2&amp;quot;表示通告不同的DNS服务器给客户端。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xshell Zmodem上传下载</title>
      <link>https://330220.xyz/post/Xshell-Zmodem%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD/</link>
      <pubDate>Tue, 16 Jul 2013 03:27:46 +0800</pubDate>
      <guid>https://330220.xyz/post/Xshell-Zmodem%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;apt-get install lrzsz&lt;/li&gt;&#xA;&lt;li&gt;Xshell链接属性里激活Zmodeom&lt;/li&gt;&#xA;&lt;li&gt;sz 文件名 下载&lt;/li&gt;&#xA;&lt;li&gt;rz 则跳出窗口让你选择上传的文件，然后上传。&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Linux 进程自动重启脚本</title>
      <link>https://330220.xyz/post/Linux-%E8%BF%9B%E7%A8%8B%E8%87%AA%E5%8A%A8%E9%87%8D%E5%90%AF%E8%84%9A%E6%9C%AC/</link>
      <pubDate>Sat, 13 Jul 2013 21:42:17 +0800</pubDate>
      <guid>https://330220.xyz/post/Linux-%E8%BF%9B%E7%A8%8B%E8%87%AA%E5%8A%A8%E9%87%8D%E5%90%AF%E8%84%9A%E6%9C%AC/</guid>
      <description>&lt;p&gt;把以下源码存成脚本,并赋予执行权限.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;10&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;11&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;12&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;13&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;14&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;15&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;16&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;17&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;18&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;19&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;20&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;21&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;22&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;23&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;24&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;25&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;26&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;27&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;28&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;29&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;30&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;31&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;32&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;33&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;34&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;35&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;36&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;37&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;38&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#!/bin/sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#函数:CheckProcess&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#功能:检查一个进程是否运行正常&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#参数:$1--要检查的进程名称&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#返回:如果运行正常返回0,否则返回1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CheckProcess&lt;span style=&#34;color:#0550ae&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# 检查输入的参数是否有效&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;$1&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#$PROCESS_NUM获取指定进程名的数目&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#如果值为1返回0,表示正常&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#如果不为1则返回1,表示有错误,需要重新启动&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#如果正常状态是多进程运行,则按进程数目修改&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#953800&#34;&gt;PROCESS_NUM&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;`&lt;/span&gt;ps -ef&lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt;grep &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;$1&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt;grep -v &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;grep&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt;wc -l&lt;span style=&#34;color:#0a3069&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#953800&#34;&gt;$PROCESS_NUM&lt;/span&gt; -eq &lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;else&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#检查是否存在进程&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CheckProcess &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;./shadowsocks-server&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#$? 是shell标准变量,是上一个函数执行完毕return值&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#953800&#34;&gt;Check_Result&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#953800&#34;&gt;$?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#953800&#34;&gt;$Check_Result&lt;/span&gt; -eq &lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#有错误则杀死所有进程,如果并将标准输出及标准错误重定向到/dev/null&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;#因为如果程序没有运行,进程数为0,你是无法kill的&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;killall -9 shadowsocks-server &amp;gt; /dev/null 2&amp;gt;&lt;span style=&#34;color:#1f2328&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6639ba&#34;&gt;exec&lt;/span&gt; ./shadowsocks-server &amp;gt; log &lt;span style=&#34;color:#1f2328&#34;&gt;&amp;amp;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sleep &lt;span style=&#34;color:#0550ae&#34;&gt;30&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;done&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>OpenWrt 破解电信联通等ISP域名劫持</title>
      <link>https://330220.xyz/post/OpenWrt-%E7%A0%B4%E8%A7%A3%E7%94%B5%E4%BF%A1%E8%81%94%E9%80%9A%E7%AD%89ISP%E5%9F%9F%E5%90%8D%E5%8A%AB%E6%8C%81/</link>
      <pubDate>Tue, 27 Mar 2012 22:14:27 +0800</pubDate>
      <guid>https://330220.xyz/post/OpenWrt-%E7%A0%B4%E8%A7%A3%E7%94%B5%E4%BF%A1%E8%81%94%E9%80%9A%E7%AD%89ISP%E5%9F%9F%E5%90%8D%E5%8A%AB%E6%8C%81/</guid>
      <description>&lt;p&gt;身在天朝，总是被各种各样的流氓强奸，域名解析失败跳转到114导航之类的非常常见的, 现在介绍OpenWrt对付这种流氓行径&#xA;的办法。&lt;/p&gt;&#xA;&lt;p&gt;第一种办法：&#xA;第一步，老规矩,先ping一个不存在的域名，得到流氓的ip地址.&lt;/p&gt;&#xA;&lt;p&gt;第二步，依次输入:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;uci add_list dhcp.@dnsmasq[0].bogusnxdomain=[要屏蔽的IP]&#xA;uci commit dhcp&#xA;/etc/init.d/dnsmasq restart&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;第三步，cmd 运行ipconfig /flushdns清空本机缓存，然后重复第一步动作，看看有没有&#xA;新的流氓的ip地址,如果有,重复第二步,如果没有,则大功告成.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sudo 免密码</title>
      <link>https://330220.xyz/post/sudo-%E5%85%8D%E5%AF%86%E7%A0%81/</link>
      <pubDate>Thu, 22 Mar 2012 21:33:58 +0800</pubDate>
      <guid>https://330220.xyz/post/sudo-%E5%85%8D%E5%AF%86%E7%A0%81/</guid>
      <description>&lt;p&gt;sudo 的时候免输入密码:&lt;/p&gt;&#xA;&lt;p&gt;用visudo编辑/etc/sudoers把你的登录名那行改为如下格式:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ID ALL=(ALL) NOPASSWD: ALL&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果没有这行，可以直接新建即可。&lt;/p&gt;&#xA;&lt;p&gt;改完后运行sudo就不需要密码了，或者直接sudo -i 切换成root用户，相应的可以sudo passwd -l root命令来lock掉root帐号。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debian PHP下用exim4 发邮件</title>
      <link>https://330220.xyz/post/Debian-PHP%E4%B8%8B%E7%94%A8exim4-%E5%8F%91%E9%82%AE%E4%BB%B6/</link>
      <pubDate>Fri, 24 Feb 2012 01:39:14 +0800</pubDate>
      <guid>https://330220.xyz/post/Debian-PHP%E4%B8%8B%E7%94%A8exim4-%E5%8F%91%E9%82%AE%E4%BB%B6/</guid>
      <description>&lt;p&gt;Debian一般使用exim4发信,而不是sendmail&lt;/p&gt;&#xA;&lt;p&gt;若机器没安装exim,则先执行&lt;/p&gt;&#xA;&lt;p&gt;apt-get install exim4&lt;/p&gt;&#xA;&lt;p&gt;exim4默认没有对外联网需要修改&lt;/p&gt;&#xA;&lt;p&gt;/etc/exim4/update-exim4.conf&lt;/p&gt;&#xA;&lt;p&gt;找到 dc_eximconfig_configtype=local把 local 改为 internet&lt;/p&gt;&#xA;&lt;p&gt;dc_local_interfaces=&amp;lsquo;127.0.0.1 ; ::1&amp;rsquo;  代表只允许本机发送邮件&lt;/p&gt;&#xA;&lt;p&gt;接着重启exim4组件&lt;/p&gt;&#xA;&lt;p&gt;/etc/init.d/exim4 restart&lt;/p&gt;&#xA;&lt;p&gt;接着使用 ln -s /usr/sbin/exim /usr/sbin/sendmail&lt;/p&gt;&#xA;&lt;p&gt;做一个软连接,实际上squeeze 下安装exim4的时候已经做好软连接了。&lt;/p&gt;</description>
    </item>
    <item>
      <title>为ubuntu 添加 ppa源</title>
      <link>https://330220.xyz/post/%E4%B8%BAubuntu-%E6%B7%BB%E5%8A%A0-ppa%E6%BA%90/</link>
      <pubDate>Fri, 20 May 2011 23:16:00 +0800</pubDate>
      <guid>https://330220.xyz/post/%E4%B8%BAubuntu-%E6%B7%BB%E5%8A%A0-ppa%E6%BA%90/</guid>
      <description>&lt;p&gt;add-apt-repository 这个命令是在python-software-properties软件包，所以要先安装&#xA;python-software-properties包：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt-get install python-software-properties&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;装完之后，如果想从ppa源安装nginx则：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;add-apt-repository ppa:nginx/stable&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ok之后就&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt-get update &amp;amp;&amp;amp; apt-get install nginx&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;同理，安装transmission则&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;add-apt-repository ppa:transmissionbt/ppa&#xA;apt-get update &amp;amp;&amp;amp; apt-get install transmission-daemon&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>ubuntu debian 设置locale</title>
      <link>https://330220.xyz/post/ubuntu-debian-%E8%AE%BE%E7%BD%AElocale/</link>
      <pubDate>Thu, 19 May 2011 01:13:20 +0800</pubDate>
      <guid>https://330220.xyz/post/ubuntu-debian-%E8%AE%BE%E7%BD%AElocale/</guid>
      <description>&lt;p&gt;1.参考 /usr/share/i18n/SUPPORTED格式编辑/var/lib/locales/supported.d/local&#xA;nano /var/lib/locales/supported.d/local&lt;/p&gt;&#xA;&lt;p&gt;如：&#xA;more /var/lib/locales/supported.d/local&#xA;zh_CN.UTF-8 UTF-8&#xA;en_US.UTF-8 UTF-8&#xA;zh_CN.GB18030 GB18030&lt;/p&gt;&#xA;&lt;p&gt;2.生成locale(自动保存在/usr/lib/locale/中)&#xA;locale-gen&lt;/p&gt;&#xA;&lt;p&gt;3.修改locale&#xA;vi /etc/environment&#xA;把&#xA;LANG=&amp;ldquo;zh_CN.UTF-8&amp;rdquo;&#xA;改成&#xA;LANG=&amp;ldquo;zh_CN.GB18030&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;more /etc/environment&#xA;PATH=&amp;quot;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:&#xA;/usr/games&amp;quot;&#xA;#LANG=&amp;ldquo;zh_CN.UTF-8&amp;rdquo;&#xA;LANG=&amp;ldquo;zh_CN.GB18030&amp;rdquo;&#xA;LANGUAGE=&amp;ldquo;zh_CN:zh:en_US:en&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>LINUX下寻找占用硬盘的大文件</title>
      <link>https://330220.xyz/post/LINUX%E4%B8%8B%E5%AF%BB%E6%89%BE%E5%8D%A0%E7%94%A8%E7%A1%AC%E7%9B%98%E7%9A%84%E5%A4%A7%E6%96%87%E4%BB%B6/</link>
      <pubDate>Tue, 15 Feb 2011 20:07:00 +0800</pubDate>
      <guid>https://330220.xyz/post/LINUX%E4%B8%8B%E5%AF%BB%E6%89%BE%E5%8D%A0%E7%94%A8%E7%A1%AC%E7%9B%98%E7%9A%84%E5%A4%A7%E6%96%87%E4%BB%B6/</guid>
      <description>&lt;p&gt;[root@host]# &lt;code&gt;du -sh /*&lt;/code&gt;&#xA;统计根目录下那个文件占用空间最多&lt;/p&gt;&#xA;&lt;p&gt;[root@host]#&lt;code&gt; find / -printf &amp;quot;%k %p\n&amp;quot;|sort -g -k 1,1|\awk &#39;{if($1&amp;amp;gt;5000) print $1/1024 &amp;quot;MB&amp;quot; &amp;quot; &amp;quot; $2}&#39;|tail -n 40&lt;/code&gt;&#xA;从根目录查找大于5MB的文件，并按大小列表显示前40个&lt;/p&gt;&#xA;&lt;p&gt;或者可以按下面这样：&#xA;&lt;code&gt;find . -size +10000000c -exec ls -lh {} \;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;从当前目录开始, 查找本目录下大于10M的文件并显示详细信息&lt;/p&gt;</description>
    </item>
    <item>
      <title>关于</title>
      <link>https://330220.xyz/about/</link>
      <pubDate>Fri, 03 Dec 2010 00:13:27 +0000</pubDate>
      <guid>https://330220.xyz/about/</guid>
      <description>&lt;p&gt;一个狗&lt;/p&gt;&#xA;&lt;p&gt;(&lt;a href=&#34;https://330220.xyz&#34;&gt;https://330220.xyz&lt;/a&gt;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux Shell下的后台运行及其前台的转换</title>
      <link>https://330220.xyz/post/Linux-Shell%E4%B8%8B%E7%9A%84%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%E5%8F%8A%E5%85%B6%E5%89%8D%E5%8F%B0%E7%9A%84%E8%BD%AC%E6%8D%A2/</link>
      <pubDate>Sat, 30 Oct 2010 19:34:32 +0800</pubDate>
      <guid>https://330220.xyz/post/Linux-Shell%E4%B8%8B%E7%9A%84%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%E5%8F%8A%E5%85%B6%E5%89%8D%E5%8F%B0%E7%9A%84%E8%BD%AC%E6%8D%A2/</guid>
      <description>&lt;p&gt;当用bash启动一个程序,你可以用在程序后加&amp;amp;,实现程序在后台运行；&lt;/p&gt;&#xA;&lt;p&gt;例如: emacs &amp;amp;&lt;/p&gt;&#xA;&lt;p&gt;但如果你忘了输入&amp;amp;;但你又不想把程序停止后重新启动；&lt;/p&gt;&#xA;&lt;p&gt;你可以这么做:&lt;/p&gt;&#xA;&lt;p&gt;按Ctrl + Z暂停前台工作,比如前面提到的Emacs；&lt;/p&gt;&#xA;&lt;p&gt;然后用jobs命令查看当前bash一共启动了多少程序,你可以看到你的emacs在其中，它的状态是Stoped的; 并且它的jobID也可以看,比如是2&lt;/p&gt;</description>
    </item>
    <item>
      <title>debian下命令行删除已经删除的软件包的残留配置文件</title>
      <link>https://330220.xyz/post/debian%E4%B8%8B%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%88%A0%E9%99%A4%E5%B7%B2%E7%BB%8F%E5%88%A0%E9%99%A4%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%9A%84%E6%AE%8B%E7%95%99%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/</link>
      <pubDate>Fri, 15 Oct 2010 19:29:03 +0800</pubDate>
      <guid>https://330220.xyz/post/debian%E4%B8%8B%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%88%A0%E9%99%A4%E5%B7%B2%E7%BB%8F%E5%88%A0%E9%99%A4%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%9A%84%E6%AE%8B%E7%95%99%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/</guid>
      <description>&lt;p&gt;今天清理一下系统，使用了一个命令行，可能对其他人有参考价值&#xA;&lt;code&gt;dpkg -l |grep &amp;quot;^rc&amp;quot;|awk &#39;{print $2}&#39; |xargs aptitude -y purge&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;用途:&#xA;删除已经删除的软件包的残留配置文件。因为 debian 中 remove 包不删除配置文件，purge 才能清除，但根据依赖关系自动清除都是 remove，在加上自己失手操作，所以用得时间长了，难免残留很多没必要的配置文件，比较烦，于是有了上述操作。&lt;/p&gt;</description>
    </item>
    <item>
      <title>归档</title>
      <link>https://330220.xyz/archives/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://330220.xyz/archives/</guid>
      <description></description>
    </item>
    <item>
      <title>搜索</title>
      <link>https://330220.xyz/search/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://330220.xyz/search/</guid>
      <description></description>
    </item>
  </channel>
</rss>
