some trick

  • debian/Ubuntu更新时候出现:
    E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
    E: Unable to lock the administration directory (/var/lib/dpkg/)

    出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成,进而出现此状况,解决的办法其实很简单: 继续阅读“some trick”

log文件过大

使用vesta管理vps时,有时候会出现服务器无响应,网页打不开的情况,此时重启apache或许可以短时间恢复正常,但原因可能在于log文件过大占用系统空间导致无法访问。
那么问题来了,如何在SSH查看文件大小?
显示当前目录所有文件大小的命令

ls -lht

df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。du可以查看文件及文件夹的大小。两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。


cd /
df -h
du -h --max-depth=1 /var/logs/
du -h --max-depth=1 /var/logs/*
du -s * | sort -nr | head

du 统计文件大小相加
df 统计数据块使用情况

如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。

如此一来在定期删除 /var/spool/clientmqueue下面的文件时,如果没有杀掉其进程,那么空间一直没有释放。

使用下面的命令杀掉进程之后,系统恢复。

fuser -u /var/spool/clientmqueue

关于ubuntu清理系统垃圾可以看这里

关于linux更多的发现

最近一个月,没事又在瞎折腾VPS…好吧,本来这个VPS也即将到期了,又新购了2台,是否续用这台,还在犹豫中。

Anyway,先分享下一点点知识吧!

Linux下面子子孙孙有很多的distro(版本),除了服务器的OS以外,Linux家族还广泛的使用于各种PC、MAC设备,各种台式机和移动设备,怎样选择适合你的版本,这里有个在线选择的网址http://www.zegeniestudios.net/ldc/index.php

会根据你的Linux知识水平、使用要求、易用性和侧重点不同加以选择。答完题以后,就会给出适合你的distro啦!

主流的几个版本特点:

  • Ubuntu 2004年发行起源于debian的distro,适用面广,软件多,适合大众使用
  • openSUSE 适用于新手管理员的distro,软件支持多,较为简单
  • Fedora 2003年独创的侧重用桌面应用方面的版本
  • debian 1994年独创的版本
  • Centos 2003年来源于红帽的服务器版本

从个人角度看,本人推荐centos 和ubuntu ,opensuse还没试用过。

说到ubuntu ,本人在3台VPS上安装试用过,总体感觉比centos轻量、稳定,而且各种软件源比较丰富,一些资源网站都比较新。安装完ubuntu系统以后,可以轻松快捷的装好LAMP包包哦.ubuntu的官网说明帮助文档也是清晰明了~ https://help.ubuntu.com/community/ApacheMySQLPHP#Installing_Apache_2

最后,还是回到最初步的Linux命令的事情上。各种权限、各种用户组,搞得人晕呼呼的。入门容易精通难,Linux入门感觉也不简单哦,这方面台湾人的教学站很不错,值得去看看。推荐!http://vbird.dic.ksu.edu.tw

 

apache服务器上ftp用户权限问题的解决

centOS系统上运行apache服务器的vps,会遇到ftp权限和网页权限不能共存的问题,好像使用kloxo的比较多见,本人最近就遇到了。

具体说来,apache上文件删除修改等等需要apache用户组权限,比如wordpress的后台升级,而设置的ftp用户则不能拥有apache用户组权限。ftp可以上传,则wordpress不能后台操作,反之则ftp不能上传文件。

google搜索试验了很多菜,折腾了两天总算找到个解决办法: 继续阅读“apache服务器上ftp用户权限问题的解决”

centOS中用户组、用户和权限

初次接触linux系统,一般都会被各种用户组权限之类的问题搞晕。在linux vps主机上此类问题更会经常遇到,比如无法浏览、无法删除改名、无法上传、无法移动、FTP登陆错误等等之类。

事实上windows系统内也有用户组,分为Admin、User、Guest

在centOS中:

cat /etc/passwd 查看用户列表
cat /etc/shadow 查看用户密码登陆时间等
cat /etc/group 查看用户组列表
继续阅读“centOS中用户组、用户和权限”

一周linux vps学习小札记

I love web tech!

前些天以白菜价收购一部vps,目的吗,是想搭建一个适合自己所需的满意的CMS系统,放点东西上去。虽然对linux系统的虚机用了很久,但初次接触vps,以root身份log in,面对SSH输入文字命令行去设置一台server,哈哈,还是摸不到头脑。有难度才会有挑战,有挑战才会有兴趣,用了快一周的业余时间,总算摸到点点门道,在此记录分享。 继续阅读“一周linux vps学习小札记”

Linux SSH常用命令

管理VPS以及独立主机必备

  1. 压缩相关
    tar,用tar命令可以压缩文件夹,同样也可以解压缩,tar压缩的文件在win下用winrar或者7z都是可以解压的,如果不能,将后缀名改成.rar继续操作即可。
    压缩一个文件夹:
    tar -czvf cosbeta.tar ./cosbeta(tar -czvf 压缩后的名字.tar ./要压缩的文件夹)
    解压缩文件:tar -zxvf cosbeta.tar
    对于zip文件就更简单了: unzip cosbeta.zip
    请不要去操作winrar文件,linux下支持这个东西不多,如果你有winrar文件,建议在本地解压,zip压缩后再传到服务器
  2. 拷贝、移动和删除文件
    cp ./current/* ./dest_folder 该命令是将current下所有的文件包括文件夹拷贝到dest_folder下,如果文件或文件夹存在则忽略之。
    下面是Copy命令CP的详细说明
    cp [options] source dest
    cp [options] source… directory说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 参数:-a 尽可能将档案状态、权限等资料都照原状予以复制。
    -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
    -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
  3. SCP命令:    scp是安全的文件拷贝,基于ssh的登录假定你想把本地计算机/home下的一个名为a.tar.tz的文件拷贝到远程服务器192.168.0.2上的/home/tmp。而且你在远程服务器 上的帐号名为root。可以用这个命令:
    scp /home/a.tar.tz root@192.168.0.2:/home/tmp/如果把文件从远程机器拷贝到本机当前目录用这个命令:scp root@192.168.0.2:/home/a.tar.tz拷贝远程机器的整个目录下的文件
    scp -r root@192.168.0.2:/home/* ./
  4. mv命令(移动文件或者重新命名文件)
    mv cosbeta cosbeta2 (将cosbeta改名为cosbeta2)
    mv ./cosbeta/* /home/newcosbeta (将cosbeta下的所有文件移动到新的目录下)
    RM命令(删除文件或者文件夹,不可恢复,请谨慎操作)
    rm *.php 将删除所有的phg文件
    rm * 将删除所有的文件(文件夹不为空则不能删除)
    rm -rf * 将删除所有的文件包括文件夹(请谨慎谨慎使用,这个-rf将不会给出任何警告而将文件删除)
  5. wget命令.
    确切的说,这个命令不一定其他虚拟主机都支持,但是国外的大多安装了这个程序。
    wget http://storyday.com/index.php (将会http下载这个网页,并且保存成index.php)
    wget -O wordpress.tar.gz http://wordpress.org/latest.tar.gz 将下载的结果保存在wordpress.tar.gz
  6. 改变目录 cd改变你的根路径,键入cd命令,按回车键。进入一个子目录,键入cd命令,空格,然后是子路径名(例如:cd命令 Documents),再按回车键。

    进入当前目录的上一级目录,键入cd命令,空格,两个点,然后按回车键。

    进入一个特定的目录,键入cd命令,空格,路径名(例如 cd命令 /usr/local/lib),再按回车键。

    为了确定你所在的目录,你可以键入pwd,按回车键,你将看到你所在的当前目录名称。

    进入根目录 cd -P

    ls和ll ll 列出来的结果详细,有时间,是否可读写等信息 ,象windows里的详细信息,ls 只列出文件名或目录名 就象windows里的列表

    ll -t 是降序,  ll -t | tac 是升序
    ll不是命令,是ls -l的别名

  7. netstatnetstat -an | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’查看系统tcp连接中各个状态的连接数。netstat -an |grep 80 |grep ESTA |awk ‘{print$5 “\n”}’ |awk ‘BEGIN {FS=”:”} {print $1 “\n”}’ |sort |uniq

    查看和本机80端口建立连接并状态在established的所有ip

    netstat -n | awk ‘/^tcp/ {n=split($(NF-1),array,”:”);if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf(“%-20s %s\n”, a, S[a]);++I}printf(“%-20s %s\n”,”TOTAL_IP”,I);for(a in s) printf(“%-20s %s\n”,a, s[a]);printf(“%-20s %s\n”,”TOTAL_LINK”,N);}’

    输出每个ip的连接数,以及总的各个状态的连接数。