Linux查看系统配置常用命令
系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源
系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源
安装crontab:
yum install crontabs
说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig --level 35 crond on
1,crontab命令
功能说明:设置计时器。
语 法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
2,crontab 格式
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启 apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、 10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每 隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三 的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
每半小时同步一下时间
wget http://www.rarsoft.com/rar/rarlinux-3.9.3.tar.gz
tar -xvf rarlinux-3.9.3.tar.gz
cd rar
make
cp rar_static /usr/local/bin/rar
操作如下,登陆SSH:
第二个IP,就是
第三个IP,就是
ifcfg-eth0:2(由此类推)
如果IP是连续的,可以使用下面的方法。
保存文件然后重启网络服务立即生效
centos add IP addresses
HVM是XEN的一个全虚拟化的模式,XEN分为半虚拟化环境(Xen PV)和全虚拟化环境(Xen HVM), 全虚拟化环境可以支持Windows Freebsd 以及各大Linux的发行版都可以使用ISO来自主安装DIY系统,而半虚拟化的系统则只支持Linux的发行版.
KVM是在近几年被红帽抬进了linux内核属于后起之秀,而XEN出现的要早所以更加成熟稳定!
KVM和HVM一些明显相同点都是qemu全虚拟化的环境可以完整的支持Windows freebsd Linux的各大发行版操作系统。一些明显不同之处就是Xen和Kvm的资源分配模式差异就是对内存的分配,XEN是采用完全独立式分割内存给vps,而Kvm则是增量式的分配内存给VPS,这样一来就充分发挥宿主服务器的内存资源!Xen和Kvm的内核不一样这个就不用说了 !
KVM的起步比较晚,和xen比还不够完善,技术普及度还有很长的路走!
我们的KVM VPS也将会在短期内上架,敬请关注!
#查看所有80端口的连接数
netstat -nat|grep -i ":80"|wc -l
#对连接的IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
#查看TCP连接状态
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
#查看80端口连接数最多的20个IP
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn|head -n20
#用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20
#查找排列较多time_wait连接
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
#查找排列较多的SYN连接
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
#!/bash/sh
DNSIP=`cat /etc/resolv.conf |grep nameserver |awk 'NR==1{print $2 }'`
iptables -A OUTPUT -p udp -j DROP
iptables -I OUTPUT -p udp --dport 53 -d $DNSIP -j ACCEPT
iptables-save
保存为脚本或者直接运行
脚本意思是,从resolv获取本地dns地址,用iptables封udp out所有端口,最后再开放dns 53号端口,从而达到防止DDOS对外攻击
mknod:
mknod 装置名称 [bcp] [Major] [Minor]
参数:
装置种类:
b :设定装置名称成为一个周边储存设备档案,例如硬盘等;
c :设定装置名称成为一个周边输入设备档案,例如鼠标/键盘等;
p :设定装置名称成为一个 FIFO 档案;
Major :主要装置代码;
Minor :次要装置代码;
范例:
范例一:建立 /dev/hda10 这个磁盘储存装置
[root@linux ~]# mknod /dev/hda10 b 3 10
# 上面那个 3 与 10 是有意义的,不要随意设定啊!
在 Linux 底下所有的装置都以档案来代表, 但是那个档案如何代表该装置呢?很简单!就是透过档案的 major 与 minor 数值来替代的~所以,那个 major 与 minor 数值是有特殊意义的, 不是随意设定的喔!举例来说,创建raw设别:mknod /dev/raw/raw1 c 162 1,如果以硬盘装置来说明,那么 /dev/hda 到 /dev/hdd 的 major 与 minor 代码是:
硬盘代号 Major Minor
/dev/hda 3 0~63
/dev/hdb 3 64~127
/dev/hdc 22 0~63
/dev/hdd 22 64~127
e2label(改标头名称):
e2label 装置名称 新的Label名称
[root@linux ~]# e2label /dev/hdb5 hdb5
mknod fd0 b 2 0
mknod fd1 b 2 1
mknod hda b 3 0
mknod hda1 b 3 1
mknod hda2 b 3 2
mknod hda3 b 3 3
mknod hda4 b 3 4
mknod hda5 b 3 5
mknod hda6 b 3 6
mknod hda7 b 3 7
mknod hda8 b 3 8
mknod hdb b 3 64
mknod hdb1 b 3 65
mknod hdb2 b 3 66
mknod hdb3 b 3 67
mknod hdb4 b 3 68
mknod hdb5 b 3 69
mknod hdb6 b 3 70
mknod hdb7 b 3 71
mknod hdb8 b 3 72
mknod hdc b 22 0
mknod hdc1 b 22 1
mknod hdc2 b 22 2
mknod hdc3 b 22 3
mknod hdc4 b 22 4
mknod hdc5 b 22 5
mknod hdc6 b 22 6
mknod hdc7 b 22 7
mknod hdc8 b 22 8
mknod hdd b 22 64
mknod hdd1 b 22 65
mknod hdd2 b 22 66
mknod hdd3 b 22 67
mknod hdd4 b 22 68
mknod hdd5 b 22 69
mknod hdd6 b 22 70
mknod hdd7 b 22 71
mknod hdd8 b 22 72
mknod sda b 8 0
mknod sda1 b 8 1
mknod sda2 b 8 2
mknod sda3 b 8 3
mknod sda4 b 8 4
mknod sda5 b 8 5
mknod sda6 b 8 6
mknod sda7 b 8 7
mknod sda8 b 8 8
mknod sdb b 8 16
mknod sdb1 b 8 17
mknod sdb2 b 8 18
mknod sdb3 b 8 19
mknod sdb4 b 8 20
mknod sdb5 b 8 21
mknod sdb6 b 8 22
mknod sdb7 b 8 23
mknod sdb8 b 8 24
mknod sr0 b 11 0
mknod sr1 b 11 1
mknod tty c 5 0
mknod console c 5 1
mknod tty1 c 4 1
mknod tty2 c 4 2
mknod tty3 c 4 3
mknod tty4 c 4 4
mknod ram b 1 1
mknod mem c 1 1
mknod kmem c 1 2
mknod null c 1 3
mknod zero c 1 5
方法1、在php代码中增加如下命令:
<?php
date_default_timezone_set('PRC');//其他东八去时间表示均可
?>
方法2、配置php.ini文件,设置如下:
date.timezone=PRC; //中国:PRC如果没有此项在任意位置添加即可,添加后别忘记重启web服务器
东八区时区可用的有Asia/Chongqing、 Asia/Chungking、Asia/Hongkong、Asia/Shanghai、Asia/Taipei、PRC、Etc/GMT+8等
VPS控制面板截图(基于HVM系列),全中文面板,管理方便上手快。
我们的Windows VPS是基于HVM和KVM架构,HVM和KVM架构的VPS均可以自行通过系统ISO光盘映像安装Windows Linux FreeBSD系统,自由度非常的高!
相关VPS围观地址:http://www.kvm.la/win.html
下面是控制面板截图:

本文主要说明一下HVM和KVM系统安装,面板已经集成了ssh和VNC控制台,仅需要到http://www.java.com下载java系统安装到您的电脑就可以使用了!
方法1(不适用于KVM架构):
通过【VPS管理区】的重装系统快速安装预装系统:
方法二(KVM和HVM均适用):
通过使用ISO来自行安装系统,全虚拟化的VPS对windows linux bsd的系统都支持,这里只说如何引导进入安装系统,至于windows linux freebsd等各种系统的安装教程就不累赘了!
如下面截图演示: ①设置硬盘和光驱启动顺序为CD-ROM,②选择挂载您要安装的系统ISO
设置好光驱后重启VPS,进入VNC控制台开始引导安装系统,如下图所示:
进入CD引导模式后就和您在本机电脑上安装系统一样,系统安装过程中配置网络的时候选择DHCP就可以自动完成网络连接!
至于一些系统安装教程我们会在后面适当更新发布!
wget加上参数之后,即可成为相当强大的下载工具。
wget -r -p -np -k http://xxx.com/abc/
-r, --recursive(递归) specify recursive download.(指定递归下载)
-k, --convert-links(转换链接) make links in downloaded HTML point to local files.(将下载的HTML页面中的链接转换为相对链接即本地链接)
-p, --page-requisites(页面必需元素) get all images, etc. needed to display HTML page.(下载所有的图片等页面显示所需的内容)
-np, --no-parent(不追溯至父级) don't ascend to the parent directory.
另外断点续传用-nc参数 日志 用-o参数
第一部分Mem行:
total 内存总数: 4092M
used 已经使用的内存数: 3270M
free 空闲的内存数: 826M
shared 当前已经废弃不用,总是0
buffers Buffer 缓存内存数: 36M
cached Page 缓存内存数:1482M
关系:total(4092M) = used(3270M) + free(826M)
第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数:1748M (指的第一部分Mem行中的used - buffers - cached)
(+buffers/cache) free内存数: 2344M (指的第一部分Mem行中的free + buffers + cached)
可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
对操作系统来讲是Mem的参数.buffers/cached 都是属于被使用,所以它认为free只有826.
对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。
总结:第一行Mem内存是包含了缓存内存,实际使用物理内存为第二行的free值!
附:早期基于Openvz内核的VPS没有Cache内存!
tar cf - 需要备份的目录路径 | zip -1 -q -P 你的密码 - - | ncftpput -c -V -u ftp用户名 -p ftp密码 ftp.example.com /ftp上文件名
if [ $? -eq 0 ]; then
echo '备份成功'
fi
注意需要安装tar,zip和ncftp
这个备份方法有3个优点。。。
1. 不会生成本地文件,在备份大量文件时很有用,不会空间不足,而且IO占用低,对网站运行影响小。。
2. 备份的文件是压缩的,网站页面,数据库数据的压缩率还是很客观。
3. 备份的文件是加密的,主要你的密码足够复杂,放在ftp上很安全。。。
追记:
Zip格式所能支持的最大文件大小为4G!
过7za和rar,都对管道支持不好
所以对于有4G以上数据的情况下,就得用gzip或者bzip2压缩了
但这样就无法设置密码保护
将脚本保存为文件,然后使用cron定时每日执行一次即可每日备份
#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root #改成你的mysql用户名
MYSQL_PASS=HostLoc #改成你的mysql密码
FTP_USER=HostLoc #改成你的ftp用户名
FTP_PASS=HostLoc #改成你的ftp密码
FTP_IP=127.0.0.1 #改成你的ftp地址
FTP_backup=backup #ftp上存放备份文件的目录,这个要自己在ftp上面建
#你要修改的地方从这里结束
#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
#删除本地3天前的数据
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz
cd /home/backup
# 导出数据库,一个数据库一个压缩文件
for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
# 压缩数据库文件为一个文件
tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz
#上传到FTP空间,删除FTP空间5天前的数据
ftp -v -n $FTP_IP << END
user $FTP_USER $FTP_PASS
type binary
cd $FTP_backup
delete $OldData
put $DataBakName
bye
END