Category: Linux

  • php的mcrypt扩展安装

    If using a Debian-based Linux system, you can run the following commands:

    sudo apt-get install php5-mcrypt

  • debian电脑损坏后数据和数据库恢复小记

    那台电脑是用来练手和模拟论坛的

    前几天有一晚被新手弄了ubuntu的源强制更新了,然后第二天校区停电

    这台电脑又破

    开始用u盘和cdrom,lan各种启动都试了,无果。要不就是到检测硬件时卡住,要不就是无法识别,其实我应该想到的,肯定是硬盘的引导区出了问题。

    今天我拿来易驱线,把老的IDE接上,用ext2explore.exe打开,当时分区比较随意,只有一个 / 和一个 /home ,今天体会到把不同的目录挂到不同分区的好处了,要是/挂了,那我一切玩完。

    接下来把硬盘所有的分区在windows下面直接删掉了,重新挂回到老机器,用cdrom放入debian光盘,启动,顺利进入安装介面,接下来分区和安装好,ssh,简单安全措施,上网什么的搞好。然后开始搞这些数据。

    安装svn,将svnroot里的文件传过去,启动服务到对应目录,然后svn能用了。装好nginx,传配置和web目录里的文件回去,最重要的就是搞mysql数据库恢复了,以前我博里的lnmp安装好,开始数据库的恢复。

    发现每个数据库里面有三种文件,*.frm *.MYD *.MYI,这些直接拷到/var/lib/mysq里,先执行

    service mysql stop

    覆盖过去,其实我在想这种方式有可能不对,就先把现在新安的/var/lib/mysql里的备份了一下,然后传过去

    #service mysql start
     Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

    果然不行,幸亏备份了一下,再把备份的覆盖回去,并没有删掉不冲突的文件,还是failed

    后来发现是目录权限不对,不管其他,先改目录权限

    # chown -Rf mysql:mysql /var/lib/mysql/
    # chmod 700 -Rf /var/lib/mysql/

    然后发现可以了

    #service mysql start
    Starting MySQL database server: mysqld.
    Checking for corrupt, not cleanly closed and upgrade needing tables..

    按以上的提示说明有一些表还是有一些问题,可能是由停电引起的。

    再把以前各种php mysql等配置文件转移回去就好了

    系统版本一样,各种服务,路径都一样,所以这次恢复不是很难,也没有多少错误碰到。

    :)EOT

  • ubuntu/debian下安装使用dig

    在ubuntu10.10下没有dig命令,而debian6下面有这个命令

    ubuntu下想要apt-get安装,发现没有找到dig软件包

    搜索后才发现正确安装是安装dnsutils

    apt-get install dnsutils

    PS:redhat系列这样安装

    yum install bind-utils

    看看dig命令大多时候如何可以取代nslookup的

    root@www:~# dig sina.com
    
    ; <<>> DiG 9.7.1-P2 <<>> sina.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58809
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 2
    
    ;; QUESTION SECTION:
    ;sina.com.                      IN      A
    
    ;; ANSWER SECTION:
    sina.com.               60      IN      A       12.130.132.30
    
    ;; AUTHORITY SECTION:
    sina.com.               600     IN      NS      ns3.sina.com.cn.
    sina.com.               600     IN      NS      ns1.sina.com.
    sina.com.               600     IN      NS      ns2.sina.com.cn.
    sina.com.               600     IN      NS      ns2.sina.com.
    sina.com.               600     IN      NS      ns1.sina.com.cn.
    
    ;; ADDITIONAL SECTION:
    ns1.sina.com.           60      IN      A       114.134.80.144
    ns2.sina.com.           60      IN      A       114.134.80.145
    
    ;; Query time: 255 msec
    ;; SERVER: 208.87.241.170#53(208.87.241.170)
    ;; WHEN: Thu Nov  3 22:18:19 2011
    ;; MSG SIZE  rcvd: 175

    简明使用,只会输出A记录(写脚本的时候容易获取ip地址)

    dig jpuyy.com +short

    只输出mx记录,简明使用

    dig mx jpuyy.com +short

    只输出NS记录

    dig ns jpuyy.com

    查询SOA( Start of Autority ) 返回主DNS服务器

    dig soa jpuyy.com

    指定dns,例如查询8.8.8.8中的jpuyy.com记录

    dig +short @8.8.8.8 jpuyy.com

    大部分的时候dig最下面显示了查询所用的时间及DNS服务器,时间,数据大小。DNS超时时间为30秒,查询时间对于排查DNS问题很有用。

    ;; Query time: 48 msec
    ;; SERVER: 10.202.72.118#53(10.202.72.118)
    ;; WHEN: Sun Oct 12 21:41:47 2014
    ;; MSG SIZE  rcvd: 225
    

    DNS的解析是递规解析,那么用dig可以加+trace参数,会显示完整的,无缓存,递规的查询,显示的是完整的trace记录。
    可以发现本地DNS(10.202.72.118)返回了根服务器列表,在一台根服务器(199.7.91.13)查到com.的记录,在其中一台com.中查到了jpuyy.com并返回了NS记录,在NS中找到了A记录。

    dig jpuyy.com +trace
    
    ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> jpuyy.com +trace
    ;; global options: +cmd
    .			493573	IN	NS	i.root-servers.net.
    .			493573	IN	NS	e.root-servers.net.
    .			493573	IN	NS	k.root-servers.net.
    .			493573	IN	NS	c.root-servers.net.
    .			493573	IN	NS	f.root-servers.net.
    .			493573	IN	NS	d.root-servers.net.
    .			493573	IN	NS	m.root-servers.net.
    .			493573	IN	NS	j.root-servers.net.
    .			493573	IN	NS	g.root-servers.net.
    .			493573	IN	NS	b.root-servers.net.
    .			493573	IN	NS	h.root-servers.net.
    .			493573	IN	NS	a.root-servers.net.
    .			493573	IN	NS	l.root-servers.net.
    ;; Received 496 bytes from 10.202.72.118#53(10.202.72.118) in 1 ms
    
    com.			172800	IN	NS	b.gtld-servers.net.
    com.			172800	IN	NS	i.gtld-servers.net.
    com.			172800	IN	NS	f.gtld-servers.net.
    com.			172800	IN	NS	m.gtld-servers.net.
    com.			172800	IN	NS	l.gtld-servers.net.
    com.			172800	IN	NS	e.gtld-servers.net.
    com.			172800	IN	NS	k.gtld-servers.net.
    com.			172800	IN	NS	g.gtld-servers.net.
    com.			172800	IN	NS	a.gtld-servers.net.
    com.			172800	IN	NS	j.gtld-servers.net.
    com.			172800	IN	NS	d.gtld-servers.net.
    com.			172800	IN	NS	h.gtld-servers.net.
    com.			172800	IN	NS	c.gtld-servers.net.
    ;; Received 487 bytes from 199.7.91.13#53(199.7.91.13) in 162 ms
    
    jpuyy.com.		172800	IN	NS	f1g1ns1.dnspod.net.
    jpuyy.com.		172800	IN	NS	f1g1ns2.dnspod.net.
    ;; Received 209 bytes from 192.5.6.30#53(192.5.6.30) in 298 ms
    
    jpuyy.com.		600	IN	A	114.215.158.48
    ;; Received 43 bytes from 112.90.143.29#53(112.90.143.29) in 38 ms

    服务器上很多时候是双线或三线,如果有智能解析的话要测试从某一个 ip 去请求 dns,加 -b 参数

    dig -b jpuyy.com

    安装 ping

    apt install iputils-ping
  • xp win7 debian下的ipv6配置

     

    xp使用isatap隧道方式上ipv6

    win+R > cmd

    C:\Documents and Settings\Administrator>netsh
    netsh>int
    netsh interface>ipv6
    netsh interface>ipv6 install
    netsh interface ipv6>isatap
    netsh interface ipv6 isatap>set router xxx.xxx.xxx.xxx
    netsh interface ipv6 isatap>set state enabled

    上面的填好router的地址

    Windows7使用isatap隧道方式上ipv6

    C:\Documents and Settings\Administrator>netsh
    netsh>int
    netsh interface>ipv6
    netsh interface ipv6>isatap
    netsh interface ipv6 isatap>set router xxx.xxx.xxx.xxx
    netsh interface ipv6 isatap>set state enabled

     

  • 在/var/下新建512MB的swap文件

    切换到/var/,也可以到其他的目录

    #cd /var/

    创建一个524288kB的swapfile
    PS:可以用这个命令来查看你硬盘操作文件的速度

    root@www:/var# dd if=/dev/zero of=swapfile bs=1024 count=524288

    524288+0 records in
    524288+0 records out
    536870912 bytes (537 MB) copied, 11.9503 s, 44.9 MB/s
    使用mkswap把文件变为swap格式,这时会显示uuid

    root@www:/var# /sbin/mkswap swapfile

    mkswap: swapfile: warning: don’t erase bootbits sectors on whole disk. Use -f to force.
    Setting up swapspace version 1, size = 524284 KiB
    no label, UUID=6c026854-1d78-48ef-9bd4-9f67a17a471f
    开启这个交换空间

    root@www:/var# /sbin/swapon swapfile

    当不想使用交换文件的时候

    先用 swapon -s查看都有哪些swap设备,如下,我的有一个物理分区和一个文件型的swap

    root@www:/var# swapon -s

    Filename                                Type            Size    Used    Priority
    /dev/sda2                               partition       1048568 23844   -1
    /var/swapfile                           file            524280  0       -2

    或查看 /proc/swaps

    cat /proc/swaps

    接下来关掉swapfile并删除

    swapoff /var/swapfile
    rm /var/swapfile

    :)EOT

  • 完全删除apt-get得到的nginx

    apt-get的好是好,但是不是最新版,各种路径都不熟悉

    其实是通过locate nginx这个命令来找到这些目录,然后移除

    以下是我的一些命令

    rm -rf /etc/nginx/
    rm -rf /usr/sbin/nginx
    rm -rf /usr/share/doc/nginx
    rm -rf /var/log/nginx/
    apt-get remove nginx*

    :)EOT