-
使用shell脚本实现自动SSH互信功能(转)
2015-09-22 14:17:01
说假设有一个1000台节点的Hadoop集群,要配置节点之间的SSH免密码登录,该如何用shell脚本实现?#!/bin/expect#循环1000台机器的IP地址,生成密钥文件authorized_keysfor ip in {cat ip.list}dossh user@$ip ssh-keygen -t rsa &>/dev/nullexpect{"yes/no" { send "yes\r";exp_continue}"password:"{send "$passwd\r";exp_continue}}cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys &> /dev/nullexitif [ !-f ~/.ssh/authorized_keys ];<br> thentouch ~/.ssh/authorized_keys<br> fissh user@$ip cat ~/.ssh/authorized_keys >> ~/.ssh/authorized_keys &> /dev/nullexpect{"yes/no" { send "yes\r";exp_continue}"password:"{send "$passwd\r";exp_continue}}done#scp authorized_keys 文件到各台机器上面。for ip in {cat ip.list}doscp ~/.ssh/authorized_keys user@$ip:~/.ssh/expect{"yes/no" { send "yes\r";exp_continue}"password:"{send "$passwd\r";exp_continue}}done原文地址:http://www.cnblogs.com/vovlie/archive/2012/10/17/2727029.html -
app性能数据收集
2015-07-19 19:10:18
功能描述
集成monkey功能, 以及在手工测试app端功能时,自动收集相关数据,并生成HTML报告。
实现方法
1、采用python脚本来驱动测试;
2、调用android SDK adb与monkey命令,进行数据采集和稳定性测试;
3、采集数据写入文件和数据库;
4、附带android其他小脚本,便于测试过程中使用;
5、根据实际情况修改配置文件后进行数据采集,生成静态HTML报告,数据一目了然
目录结构
代码目录结构:
性能数据收集使用指南
测试准备
1、配置文件
只需保证配置文件内容正确即可。
配置文件存放在src/config/目录下,名称是:config.ini。配置文件各参数介绍,参考如下:
[PERFORMANCE]
package_name = com.xxxxx.xxxx
activity = com.xxxxx.xxx.xxxxxPager
start_no = 10
interval = 5
capture_num = 100
isROOT = True
[MONKEY]
#种子数
throttle = 500
#事件数
event_number = 10000
#事件延迟时间
event_delay_time = 600
#事件分布比,填写正整数,且总和不能超过100
pct_touch = 30
pct_motion = 30
pct_nav = 0
pct_trackball = 0
pct_majornav = 10
pct_syskeys = 10
pct_appswitch = 10
pct_anyevent = 10
[CAPTURE_FILE]
#性能数据采集后记录到文件
cpu_info_file = cpu_info.txt
cpu_load_file = cpu_load.txt
mem_info_file = mem_info.txt
flow_info_file = flow_info.txt
2、SQLIte数据库表设计说明
表名 字段 字段说明 cpu_data capture_time 采集时间点 occupancyRate 总的cpu消耗百分比 user user百分比 kernel kernel百分比 cpu_load capture_time 采集时间点 lavg_1 1分钟平均负载 lavg_5 5分钟平均负载 lavg_15 15分钟平均负载 nr_running 在采样时刻,运行队列的任务的数 nr_threads 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务) last_pid 最大的pid值,包括轻量级进程,即线程 flow_data capture_time 采集时间点 download wifi下载流量 upload wifi上传流量 down_flow_diff 本次download-上一次download,差值为两个采集时间点下载流量的实际消耗 up_flow_diff 本次upload-上一次upload,差值为两个采集时间点上传流量的实际消耗 mem_data capture_time 采集时间点 mem_percent 内存实际消耗百分比(PSS/MemoryTotal) 3、创建表SQL语句
表名 SQL语句 cpu_data CREATE TABLE [cpu_data] (
[capture_time] DATETIME NOT NULL,
[occupancyRate] CHAR NOT NULL,
[user] CHAR NOT NULL,
[kernel] CHAR NOT NULL);cpu_load CREATE TABLE [cpu_load] (
[capture_time] DATETIME NOT NULL,
[lavg_1] CHAR NOT NULL,
[lavg_5] CHAR NOT NULL,
[lavg_15] CHAR NOT NULL,
[nr_running] INT,
[nr_threads] INT,
[last_pid] CHAR);flow_data CREATE TABLE [flow_data] (
[capture_time] DATETIME NOT NULL,
[download] CHAR NOT NULL,
[upload] CHAR NOT NULL,
[down_flow_diff] CHAR,
[up_flow_diff] CHAR);mem_data CREATE TABLE [mem_data] (
[capture_time] DATETIME NOT NULL,
[mem_percent] CHAR NOT NULL);4、涉及的第三方模块
模块名称
安装命令
模块说明
progressbar
pip install progressbar
进度条
configobj
pip install configobj
读取配置文件
matplotlib
pip install matplotlib
绘图使用
dateuti
pip install python-dateutil
绘图使用
numpy
pip install numpy
绘图使用
性能数据收集代码执行
执行src目录下run_performance.py,即可进行性能数据的收集工作,在数据收集期间,请手工进行app端的功能测试,这样的数据采集才具有意义。
Monkey稳定性测试
src目录下,执行run_monkey.py,可调用monkey命令进行稳定性测试,产生的日志信息记录在report目录下。
说明:
可在进行monkey稳定性过程中,进行性能数据收集操作,这样采集的数据为monkey稳定性测试期间被测app的性能数据。
测试报告查看
测试报告在report目录下Performance_Results.html文件,部分截图详见附件
-
python all any
2014-07-07 14:53:15
python all anyalldef all(iterable):for element in iterable:if not element:return Falsereturn Trueanydef any(iterable):for element in iterable:if element:return Falsereturn Trueall 只要list或tupe中含有0,'',false中的任何一个,则为false;否则为trueany 只要list或tupe中含有0,'',false(全部),则为false;否则为true注意:all 空元组、空列表返回trueany 空元组、空列表返回false -
删除文件中的空格
2014-06-06 10:37:14
#!/usr/bin/bask
ls|while read i;do
mv "$i" $(echo $i|tr -d ' ') 2>/dev/null
done
-
文件列求和
2014-01-21 16:40:51
对文件中某一列进行数值求和198 MMSGSUSE11 [wyz] :/home/wyz/perl/testcase>more tmp.txt
testAddCountryCode.AddCountryCode 5 0 0 796.28
testChcekSAGipNormal.ChcekSAGIPNormalTest 3 0 0 418.28
testCheckInfoNormal.CheckInfoNormalTest 3 0 0 748.26
testCheckSAGIPNormal.StageInteractiveNormalTest 3 0 0 804.79
testCheckSPinfo.CheckSPinfoTest 12 0 0 1736.24
testConsumModify.ConsumModify 8 0 0 2628.19
testCountryCodeAbnormalCase.CountryCodeAbnormalTest 3 0 0 899.41
testDelCountryCode.DelCountryCodeTest 5 0 0 1512.43
testEmigratedInteractive.EmigratedInteractiveTest 1 0 0 401.68
testGeneralOndemand.OndemandTest 10 0 0 2835.79
testGeneralOndemandAbnormal.OnDemandAbnormal 4 0 0 1029.27
testGiveOndemandAbnormal.GiveOndemandAbnormal 2 0 0 115.75操作:200 MMSGSUSE11 [wyz] :/home/wyz/perl/testcase>awk '{m+=$2} END{print m}' tmp.txt
59对多列求和201 MMSGSUSE11 [wyz] :/home/wyz/perl/testcase>more t.txt
00|M00a|0A|a00|0.00|15.00
00|M00a|0A|a00|0.00|15.00
00|M0Z1|0B|my|10.00|0.00
00|M0Z1|0A|a00|10.00|0.00
00|M005|0A|a00|0.00|1.48
00|M005|0A|a00|2.96|0.00
00|M005|0A|a00|2.96|0.00202 MMSGSUSE11 [wyz] :/home/wyz/perl/testcase>awk -F '|' '{m+=$5;n+=$6} END {print m,n}' t.txt
25.92 31.48 -
集群软件配置
2014-01-15 16:39:40
共享磁盘设置
查看共享磁盘与盘符的对应关系
GW_8:~ # fdisk -l
Disk /dev/sda: 145.9 GB, 145999527936 bytes
255 heads, 63 sectors/track, 17750 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 3134 25173823+ 82 Linux swap / Solaris
/dev/sda2 * 3135 5876 22025115 83 Linux
/dev/sda3 5877 17750 95377905 f W95 Ext'd (LBA)
/dev/sda5 5877 12404 52436128+ 83 Linux
/dev/sda6 12405 17626 41945683+ 83 Linux
Disk /dev/sdb: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 463.8 GB, 463856467968 bytes
255 heads, 63 sectors/track, 56394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdc doesn't contain a valid partition table
Disk /dev/dm-0: 463.8 GB, 463848079360 bytes
255 heads, 63 sectors/track, 56392 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-0 doesn't contain a valid partition table
GW_8:~ # ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 9 Mar 5 01:30 edd-int13_dev80 -> ../../sda
lrwxrwxrwx 1 root root 10 Mar 5 01:30 edd-int13_dev80-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 5 01:30 edd-int13_dev80-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Mar 5 01:30 edd-int13_dev80-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Mar 5 01:30 edd-int13_dev80-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 5 01:30 edd-int13_dev80-part6 -> ../../sda6
lrwxrwxrwx 1 root root 9 Mar 5 01:30 scsi-360022a110003135e2d632e9f00000000 -> ../../sdb
lrwxrwxrwx 1 root root 9 Mar 5 01:30 scsi-360022a110003135e2d635fa500000004 -> ../../sdc
lrwxrwxrwx 1 root root 9 Mar 5 01:30 scsi-3600508e000000000d97c2018652fe50e -> ../../sda
lrwxrwxrwx 1 root root 10 Mar 5 01:30 scsi-3600508e000000000d97c2018652fe50e-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 5 01:30 scsi-3600508e000000000d97c2018652fe50e-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Mar 5 01:30 scsi-3600508e000000000d97c2018652fe50e-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Mar 5 01:30 scsi-3600508e000000000d97c2018652fe50e-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 5 01:30 scsi-3600508e000000000d97c2018652fe50e-part6 -> ../../sda6
整理出共享磁盘与盘符的对应关系
VDisk(LUN)名称
WWN号
映射磁盘ID
映射盘符
lun_ora
60022a110003135e2d632e9f00000000
scsi-360022a110003135e2d632e9f00000000
/dev/sdb
说明:
/dev/sdc分区,用于文件系统的创建,存放彩信日志、话单与存储。
DG与ASM File的空间分配
本节针对中小容量阵列进行空间规划举例,产品依据实际情况进行调整。
【基本原则】
l dg_ora最大不超过150G;
l dg_data与dg_index的比例为1:1
l dg_backup与dg_data或dg_index之间的比例应在1:2~1:4之间,建议为1:3。
l DG命名规则、DG用途、ASM File命名规则、ASM File用途、ASM File大小依据本章的规划进行设置。
DG_ORA规划
DG_ORA空间划分示例:
100G的DG_ORA划分
DG名称
ASM File名称
ASM File大小(MB)
用途
DG_ORA
[分配20.65G]
system
3000
创建system表空间
sysaux
3000
创建sysaux表空间
temp
4000
创建temp表空间
undotbs01
4000
创建undo表空间
user
50
创建user表空间
control01
300
创建控制文件
control02
300
创建控制文件
redolog01
2000
创建联机日志1号组成员
redolog02
2000
创建联机日志2号组成员
redolog03
2000
创建联机日志3号组成员
剩下的空间可以分配给应用表空间,或应用表空间使用独立的ASM磁盘组下的某个成员(这时,应减少DG_ORA对应lun的大小分配)。
挂接块设备并赋予正确的权限
根据本章节整理的共享磁盘与盘符的对应关系,以root用户登录,编辑/etc/init.d/after.local添加以下记录(如果存在则跳过):
mkdir -p /dev/diskgroup
chmod 770 /dev/diskgroup
chown grid:oinstall /dev/diskgroup
ln -f -s /dev/disk/by-id/scsi-360022a110003135e2d632e9f00000000 /dev/diskgroup/dg_ora
chmod 660 /dev/diskgroup/dg_*
chown grid:oinstall /dev/diskgroup/dg_*
对/etc/init.d/after.local赋权限
# chmod 744 /etc/init.d/after.local
执行/etc/init.d/after.local
# sh /etc/init.d/after.local
配置HAS
以root用户登录服务器,执行脚本roothas.pl
# /opt/oracrs/product/11gR2/grid/perl/bin/perl -I/opt/oracrs/product/11gR2/grid/perl/lib -I/opt/oracrs/product/11gR2/grid/crs/install /opt/oracrs/product/11gR2/grid/crs/install/roothas.pl下面是执行过程中的屏显信息Using configuration parameter file: /opt/oracrs/product/11gR2/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
LOCAL ADD MODE
Creating OCR keys for user 'grid', privgrp 'oinstall'..
<
sqlite python执行delete报错
2013-12-06 15:54:49
#coding=gbkfrom sqlite3 import dbapi2# 打开数据库 c:\mytest.db
conn=dbapi2.connect("c:\\mytest.db")
# 创建数据表 mytb
sql1 = "CREATE TABLE IF NOT EXISTS mytb1 ( a char , b int , c real )"
sql2 = "CREATE TABLE IF NOT EXISTS mytb2 ( a char , b int , c real )"
sql3 = "CREATE TABLE IF NOT EXISTS mytb3 ( a char , b int , c real )"
conn.execute( sql1 )
conn.execute( sql2 )
conn.execute( sql3 )cs = conn.cursor( )cs.execute("SELECT name FROM sqlite_master WHERE type='table'")
records = cs.fetchall()
for i in range(len(records)):
print 'i:',i
print 'records:',records[i][0]
#cs.execute("DELETE FROM %s " % records[i][0])
cs.execute('delete from ?' ,records[i][0])conn.commit()
cs.close()
conn.close()===============================sqlite3.OperationalError: near "?": syntax errorTNS-12560 TNS-00583错误码
2013-10-18 09:55:45
表象oracle@linux250:~/product/11gR2/db1/network/admin> lsnrctl start listener_oraLSNRCTL for Linux: Version 11.2.0.3.0 - Production on 18-10月-2013 09:33:18Copyright (c) 1991, 2011, Oracle. All rights reserved.Starting /home/oracle/product/11gR2/db1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /home/oracle/product/11gR2/db1/network/admin/listener.ora
Log messages written to /home/oracle/diag/tnslsnr/linux250/listener_ora/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.137.83.15)(PORT=1526)))
TNS-12560: TNS:protocol adapter error
TNS-00583: Valid node checking: unable to parse configuration parameters
Listener failed to start. See the error message(s) above...原因:这个问题,可能是由于listener.ora tnsnames.ora sqlnet.ora三个文件或其中的一个文件内容配置错误导致的;首先,要逐一排查listener.ora文件中内容是否正确,可以找其他别的好的坚挺文件内容进行比对;然后查看tnsnames.ora文件的内容;最后查看sqlnet.ora文件内容(如果有的话)。本次遇见的错误码,在对比listener.ora和tnsnames.ora文件的内容后,并没有发现问题,目标转向了sqlnet.ora文件,最终是因为sqlnet.ora文件内容中,多出了一行~开头的信息,删除了该行开头的~符号就问题解决。小结:文件内容在vi时,容易出错,对于配置文件,在vi后,要进行审查,防止文件内容存在比较隐蔽的错误。软件测试全景图
2013-09-25 10:04:58
ORA-12526错误码
2013-09-25 09:47:13
ORA-12526: TNS: 监听程序: 所有适用例程都处于受限模式oerr ora 12526
12526, 00000, "TNS:listener: all appropriate instances are in restricted mode"
// *Cause: Database instances supporting the service requested by the client
// were in restricted mode. The Listener does not allow connections to
// instances in restricted mode. This condition may be temporary, such as
// during periods when database administration is performed.
// *Action: Attempt the connection again. If error persists, then contact
// the database administrator to change the mode of the instance,
// if appropriate.解决方法:ALTER SYSTEM DISABLE RESTRICTED SESSION;grid环境变量
2013-08-12 19:34:47
# Grid Environment
export ORACLE_BASE=/opt/oracrs/base
export ORACLE_HOME=/opt/oracrs/product/11gR2/grid
export ORACLE_SID=+ASM
export ORACLE_TERM=xterm
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
export LD_LIBRARY_PATH
SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib
export SHLIB_PATH
# Set shell search paths:
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH:/usr/local/bin
# CLASSPATH must include the following JRE locations:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export DISPLAY=127.0.0.1:1.0local_listener监听配置取值
2013-08-12 16:24:36
oracle@MMSG:~/product/11gR2/db/network/admin> more listener.ora
# listener.ora Network Configuration File: /opt/oracle/product/11gR2/db/network/admin/listener.ora
# Generated by Oracle configuration tools.LISTENER_ORA =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.137.83.17)(PORT = 1526))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1526))
)
)ADR_BASE_LISTENER_ORA = /opt/oracle
oracle@MMSG:~/product/11gR2/db/network/admin> more tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/oracle/product/11gR2/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.MMSGDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MMSG)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.137.83.17)(PORT = 1526))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mmsgdb)
)
)LISTENER_MMSGDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = MMSG)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.137.83.17)(PORT = 1526))
)
oracle@MMSG:~/product/11gR2/db/network/admin> sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on 星期二 8月 13 00:22:29 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing optionsSQL> show parameter local_listenerNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string LISTENER_MMSGDB
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing optionslocal_listener参数要正确设置,否则会出现业务数据库用户使用sid标示连接db时报TNS-12514错误,不使用sid连接时,正常,能登陆到db中查询表空间使用率
2013-08-06 17:12:47
一版只会展示表空间和占用率select total.tablespace_name,
to_char(round((1 - free.MB / total.MB) * 100, 2),'990.99') || '%' as Used_Pct
from
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_free_space
group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name) total
where
free.tablespace_name = total.tablespace_name ;
第二版会展示占用率和当前空间大小和已经使用大小。
select total.tablespace_name,
to_char(round((1 - free.MB / total.MB) * 100, 2),'990.99') || '%' as Used_Pct,
free.MB as freeMB,
total.MB as totalMB
from
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_free_space
group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name) total
where
free.tablespace_name = total.tablespace_name ;样例输出(version 2, version 1 没有后面两列):
TABLESPACE_NAME USED_PCT FREEMB TOTALMB
------------------------------ -------- ---------------------- ----------------------
SYSAUX 94.44% 58 1042.375
INFOX_WEB_MAIN_DATA 91.67% 62.5 750
INFOX_MAIN_DATA 0.35% 498.25 500
INFOX_RESEND 2.66% 194.6875 200
INFOX_UNIWEB_MAIN_DATA 1.82% 77.5625 79
USERS 77.74% 65.125 292.5625
INFOX_WEB_MAIN_LOG 1.84% 775.4375 790
INFOX_UNIWEB_MAIN_INDEX 0.16% 38.9375 39
SYSTEM 99.33% 5.6875 850
INFOX_CONGESTION 10.38% 89.625 100
UNDOTBS2 63.32% 375.5625 1024
INFOX_MAIN_INDEX 0.05% 799.5625 800
INFOX_TRAFFIC 8.50% 91.5 100
INFOX_BACKUP_INDEX 28.98% 355.125 500
INFOX_UNIWEB_MAIN_LOG 0.40% 78.6875 79测试员,敢问路在何方?来自微软工程师
2013-08-02 16:41:57
crontab详解
2013-06-18 01:28:05
- 在命令行中输入 crontab -e
- 就可以配置 cron 了。
- cron 配置计划任务的书写格式
- * * * * * [用户名] 命令
- 分钟 小时 日 月 周 [用户名] 命令
- 说明:
- 第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;第七段应该定义的是:执行的命令和参数。注:其中用户名可是省略,用户名定义的是程序用哪个用户来执行,比如mysql服务器,我们可以定义成以mysql用户来启动、停止、重新 启动,这时要写上用户名;不过对于cron来说意义不是太大,因为每个用户都有自己的cron配置文件。有些程序的启动必须用到root用户,这时我们就 可以修改root用户的cron配置文件就行了。在每个用户的配置文件中,不必指定用户名。
- 我们可以把计划任务写在全局性配置文件中,如果您想把一个计划放入全局性配置文件中,就得改发行版所对应的cron全局配置文件,比如Fedora 5的全局性配置文件是/etc/crontab文件;
- 每个用户也能定义自己的cron配置文件,用crontab -e 命令来定义;
- 举一例:让机器在每天8点30分重新启动;
- 关于时间格式中有7个字段。我们可以直接更改或者添加,当然这是系统任务调用。举个例子,比如我在每天的早上8点30分重新启动机器,就可以在
- /etc/crontab中加入下面的两句,第一句就是注释了。以#号开始,后面写一个自己能知道这是什么任务的备注;
- # reboot OS
- 30 8 * * * root /sbin/reboot
- 第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59
- 第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23
- 第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31
- 第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12
- 第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。
- 每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;
- 第七段应该定义的是:执行的命令和参数。
- 对比上面的例子就知道,30是不是分钟??8是不是小时?如果有*代表的地方,表示全部,也就是说,每个月,每天,每星期都要执行。root 表示用root用户执行,命令是/sbin/reboot ,也就是说,系统在每天 8点30分重新启动;
- 我们可以把每天8点30分重新启动的计划任务写入cron全局性配置文件中,也可以定义在root用户自己的cron配置文件中。如果定义在 root自己的配置文件,请用root身份来执行 crontab -e 来修改配置文件;crontab -e 进入修改配置文件的过程,其实和vi的用法一样,请参看vi 的用法:《文件编辑器 vi》
- 这里有c r o n t a b文件条目的一些例子:
- 30 21 * * * /apps/bin/cleanup.sh
- 上面的例子表示每晚的21:3 0运行/a p p s/b i n目录下的cleanup.sh。
- 45 4 1,10,22 * * /apps/bin/backup.sh
- 上面的例子表示每月1、1 0、2 2日的4 : 4 5运行/ a p p s / b i n目录下的b a c k u p . s h。
- 10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
- 上面的例子表示每周六、周日的1 : 1 0运行一个f i n d命令。
- 0,30 18-23 * * * /apps/bin/dbcheck.sh
- 上面的例子表示在每天1 8 : 0 0至2 3 : 0 0之间每隔3 0分钟运行/ a p p s / b i n目录下的d b c h e c k . s h。
- 0 23 * * 6 /apps/bin/qtrend.sh
- 上面的例子表示每星期六的11 : 0 0 p m运行/ a p p s / b i n目录下的q t r e n d . s h。
- 让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后。也要重新启动cron服务器。
- 重启cron服务是:/etc/init.d# ./cron restart
data命令详解
2013-06-18 01:16:54
date命令使用2007年09月28日 04:30 来源:ChinaUnix博客 作者:xinyv 编辑:周荣茂#显示时区
[cnscn@root /home/cnscn/backup]# date +%Z
CST
#显示世纪
[cnscn@root /home/cnscn/backup]# date +%C
20
========================设置===============================
#设置时间为: 2005年02月22日 09:10:46
[cnscn@root /home/cnscn/backup]# date 022209102005.46 #月 日 时 分 年 . 秒
二 2月 22 09:10:46 CST 2005
#[cnscn@root /home/cnscn/backup]# date -s "+3 hours" #将时间增加3小时
二 2月 22 09:46:14 CST 2005
#[cnscn@root /home/cnscn/backup]# date -s "-40 minutes" #将时间减少40分钟
二 2月 22 09:06:35 CST 2005
#[cnscn@root /home/cnscn/backup]# date -s "+1 year" #时间增加1年
三 2月 22 09:14:55 CST 2006
#[cnscn@root /home/cnscn/backup]# date -s "-1 year" #时间减少一年
二 2月 22 09:15:02 CST 2005
======================按日期显示============================
[cnscn@root /home/cnscn/backup]# date -d "+1 year"
三 2月 22 09:57:46 CST 2006
[cnscn@root /home/cnscn/backup]# date -d "-1 month"
六 1月 22 09:49:08 CST 2005
[cnscn@root /home/cnscn/backup]# date -d "-1 month" +%s
1106358557
#[cnscn@root /home/cnscn/backup]# date -d "7 days ago" #显示7天前的时间
二 2月 15 09:16:09 CST 2005
#[cnscn@root /home/cnscn/backup]# date -d "7 days ago" +%s #显示7天前时间的秒值
1108430178
#[cnscn@root /home/cnscn/backup]# date -d "7 days" #显示7天后时间的秒值
二 3月 1 09:17:11 CST 2005
#[cnscn@root /home/cnscn/backup]# date -d "7 days" +%s #显示7天后时间的秒值
1109639824
=======================================================
#显示当前系统时间和日期
$date
#完整的日期时间显示
[cnscn@root /home/cnscn/backup]# date +%c
2005年02月22日 星期二 09时32分19秒
#以格林威治标准时间显示目前时间和日期
[cnscn@root /home/cnscn/backup]# date -u
二 2月 22 01:38:20 UTC 2005
#以当地习惯显示日期
[cnscn@root /home/cnscn/backup]# date +%x
2005年02月22日
#以mm/dd/yy格式显示系统日期
[cnscn@root /home/cnscn/backup]# date +%D
02/22/05
=========================================================
#英文全称月份
[cnscn@root /home/cnscn/backup]# date +%B
二月
#英文缩写月份
[cnscn@root /home/cnscn/backup]# date +%b
2月
============================================================
#今年第几天
[cnscn@root /home/cnscn/backup]# date +%j
053
============================================================
#时:分:秒
[cnscn@root /home/cnscn/backup]# date +%T09:24:07
#加上AM与PM
[cnscn@root /home/cnscn/backup]# date +%T%p
09:24:07上午
[cnscn@root /home/cnscn/backup]# date +%r
09:34:44 上午
=========================================================
#周几
[cnscn@root /home/cnscn/backup]# date +%w
2
#本地格式周几全称
[cnscn@root /home/cnscn/backup]# date +%A
星期二
#本地格式周几缩写
[cnscn@root /home/cnscn/backup]# date +%a
二
#今年第几周
[cnscn@root /home/cnscn/backup]# date +%U
08
1)把时间转成秒
$date -d "20061206 07:08" +%s
1165360080
2)把秒转换成时间
$ date
2006年 07月 06日 星期四 11:57:18 CST
$ date -d "now" +%s
1152158238
$ date -d "19700101 1152158238 seconds UTC"
2006年 07月 06日 星期四 11:57:18 CST
计算机常用端口全集
2013-06-18 01:15:30
计算机常用端口全集1 传输控制协议端口服务多路开关选择器2 compressnet 管理实用程序3 压缩进程5 远程作业登录7 回显(Echo)9 丢弃11 在线用户13 时间15 netstat17 每日引用18 消息发送协议19 字符发生器20 文件传输协议(默认数据口)21 文件传输协议(控制)22 SSH远程登录协议23 telnet 终端仿真协议24 预留给个人用邮件系统25 smtp 简单邮件发送协议27 NSW 用户系统现场工程师29 MSG ICP31 MSG验证33 显示支持协议35 预留给个人打印机服务37 时间38 路由访问协议39 资源定位协议41 图形42 WINS 主机名服务43 "绰号" who is服务44 MPM(消息处理模块)标志协议45 消息处理模块46 消息处理模块(默认发送口)47 NI FTP48 数码音频后台服务49 TACACS登录主机协议50 远程邮件检查协议51 IMP(接口信息处理机)逻辑地址维护52 施乐网络服务系统时间协议53 域名服务器54 施乐网络服务系统票据交换55 ISI图形语言56 施乐网络服务系统验证57 预留个人用终端访问58 施乐网络服务系统邮件59 预留个人文件服务60 未定义61 NI邮件?62 异步通讯适配器服务63 WHOIS+64 通讯接口65 TACACS数据库服务66 Oracle SQL*NET67 引导程序协议服务端68 引导程序协议客户端69 小型文件传输协议70 信息检索协议71 远程作业服务72 远程作业服务73 远程作业服务74 远程作业服务75 预留给个人拨出服务76 分布式外部对象存储77 预留给个人远程作业输入服务78 修正TCP79 Finger(查询远程主机在线用户等信息)80 全球信息网超文本传输协议(www)81 HOST2名称服务82 传输实用程序83 模块化智能终端ML设备84 公用追踪设备85 模块化智能终端ML设备86 Micro Focus Cobol编程语言87 预留给个人终端连接88 Kerberros安全认证系统89 SU/MIT终端仿真网关90 DNSIX 安全属性标记图91 MIT Dover假脱机92 网络打印协议93 设备控制协议94 Tivoli对象调度95 SUPDUP96 DIXIE协议规范97 快速远程虚拟文件协议98 TAC(东京大学自动计算机)新闻协议101 usually from sri-nic102 iso-tsap103 ISO Mail104 x400-snd105 csnet-ns109 Post Office110 Pop3 服务器(邮箱发送服务器)111 portmap 或 sunrpc113 身份查询115 sftp117 path 或 uucp-path119 新闻服务器121 BO jammerkillah123 network time protocol (exp)135 DCE endpoint resolutionnetbios-ns137 NetBios-NS138 NetBios-DGN139 win98 共享资源端口(NetBios-SSN)143 IMAP电子邮件144 NeWS - news153 sgmp - sgmp158 PCMAIL161 snmp - snmp162 snmp-trap -snmp170 network PostScript.175 vmnet194 Irc315 load400 vmnet0443 安全服务456 Hackers Paradise500 sytek512 exec513 login514 shell - cmd515 printer - spooler517 talk518 ntalk520 efs526 tempo - newdate530 courier - rpc531 conference - chat532 netnews - readnews533 netwall540 uucp - uucpd 543 klogin544 kshell550 new-rwho - new-who555 Stealth Spy(Phase)556 remotefs - rfs_server600 garcon666 Attack FTP750 kerberos - kdc751 kerberos_master754 krb_prop888 erlogin1001 Silencer 或 WebEx1010 Doly trojan v1.351011 Doly Trojan1024 NetSpy.698 (YAI)1025 NetSpy.6981033 Netspy1042 Bla1.11047 GateCrasher1080 Wingate1109 kpop1243 SubSeven1245 Vodoo1269 Mavericks Matrix1433 Microsoft SQL Server 数据库服务1492 FTP99CMP (BackOriffice.FTP)1509 Streaming Server1524 ingreslock1600 Shiv1807 SpySender1981 ShockRave1999 Backdoor2000 黑洞(木马) 默认端口2001 黑洞(木马) 默认端口2023 Pass Ripper2053 knetd2140 DeepThroat.10 或 Invasor2283 Rat2565 Striker2583 Wincrash22801 Phineas3129 MastersParadise.923150 Deep Throat 1.03210 SchoolBus3389 Win2000 远程登陆端口4000 OICQ Client4567 FileNail4950 IcqTrojan5000 WindowsXP 默认启动的 UPNP 服务5190 ICQ Query5321 Firehotcker5400 BackConstruction1.2 或 BladeRunner5550 Xtcp5555 rmt - rmtd5556 mtb - mtbd5569 RoboHack5714 Wincrash35742 Wincrash6400 The Thing6669 Vampire6670 Deep Throat6711 SubSeven6713 SubSeven6767 NT Remote Control6771 Deep Throat 36776 SubSeven6883 DeltaSource6939 Indoctrination6969 Gatecrasher.a7306 网络精灵(木马)7307 ProcSpy7308 X Spy7626 冰河(木马) 默认端口7789 ICQKiller8000 OICQ Server9400 InCommand9401 InCommand9402 InCommand9535 man9536 w9537 mantst9872 Portal of Doom9875 Portal of Doom9989 InIkiller10000 bnews10001 queue10002 poker10167 Portal Of Doom10607 Coma11000 Senna Spy Trojans11223 ProgenicTrojan12076 Gjamer 或 MSH.104b12223 Hack?9 KeyLogger12345 netbus木马 默认端口12346 netbus木马 默认端口12631 WhackJob.NB1.716969 Priotrity17300 Kuang220000 Millenium II (GrilFriend)20001 Millenium II (GrilFriend)20034 NetBus Pro20331 Bla21554 GirlFriend 或 Schwindler 1.8222222 Prosiak23456 Evil FTP 或 UglyFtp 或 WhackJob27374 SubSeven29891 The Unexplained30029 AOLTrojan30100 NetSphere30303 Socket2330999 Kuang31337 BackOriffice31339 NetSpy31666 BO Whackmole31787 Hack a tack33333 Prosiak33911 Trojan Spirit 2001 a34324 TN 或 Tiny Telnet Server40412 TheSpy40421 MastersParadise.9640423 Master Paradise.9747878 BirdSpy250766 Fore 或 Schwindler53001 Remote Shutdown54320 Back Orifice 200054321 SchoolBus 1.661466 Telecommando65000 Devil8000 灰鸽子木马默认端口5022 华夏同盟远程控制默认端口4899 远程登录端口计算机常用端口全集我们常常会在各类的技术文章中见到诸如135、137、139、443之类的“端口”,可是这些端口究竟有什么用呢?它会不会给我们的计算机带来潜在的威胁呢?究竟有多少端口是有用的?端口:0服务:Reserved说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。端口:1服务:tcpmux说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户,如:IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。端口:7服务:Echo说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。端口:19服务:Character Generator说明:这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。端口:21服务:FTP说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。端口:22服务:Ssh说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。端口:23服务:Telnet说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。端口:25服务:SMTP说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。端口:31服务:MSG Authentication说明:木马Master Paradise、Hackers Paradise开放此端口。端口:42服务:WINS Replication说明:WINS复制端口:53服务:域名 Name Server(域)说明:域服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗域(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。端口:67服务:Bootstrap Protocol Server说明:通过DSL和Cable modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们,分配一个地址把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。客户端向68端口广播请求配置,服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。端口:69服务:Trival File Transfer说明:许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何 文件。它们也可用于系统写入文件。端口:79服务:Finger Server说明:入侵者用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器Finger扫描。端口:80服务:HTTP说明:用于网页浏览。木马Executor开放此端口。端口:99服务:Metagram Relay说明:后门程序ncx99开放此端口。端口:102服务:Message transfer agent(MTA)-X.400 over TCP/IP说明:消息传输代理。端口:109服务:Post Office Protocol -Version3说明:POP3服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交 换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。端口:110服务:SUN公司的RPC服务所有端口说明:常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等端口:113服务:Authentication Service说明:这是一个许多计算机上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多计算机的信息。但是它可作为许多服务的记录器,尤其是FTP、POP、IMAP、SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务,将会看到许多这个端口的连接请求。记住,如果阻断这个端口客户端会感觉到在防火墙另一边与E-MAIL服务器的缓慢连接。许多防火墙支持TCP连接的阻断过程中发回RST。这将会停止缓慢的连接。端口:119服务:Network News Transfer Protocol说明:NEWS新闻组传输协议,承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。端口:135服务:本地 Service说明:Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-point mapper注册它们的位置。远端客户连接到计算机时,它们查找end-point mapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行Exchange Server吗?什么版本?还有些DOS攻击直接针对这个端口。端口:137、138、139服务:NETBIOS Name Service说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。端口:143服务:Interim Mail Access Protocol v2说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。记住:一种LINUX蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不流行。端口:161服务:SNMP说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络。端口:177服务:X Display Manager Control Protocol说明:许多入侵者通过它访问X-windows操作台,它同时需要打开6000端口。端口:389服务:LDAP、ILS说明:轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。端口:443服务:Https说明:网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP。端口:456服务:【NULL】说明:木马HACKERS PARADISE开放此端口。端口:513服务:Login,remote login说明:是从使用cable modem或DSL登陆到子网中的UNIX计算机发出的广播。这些人为入侵者进入他们的系统提供了信息。端口:544服务:【NULL】说明:kerberos kshell端口:548服务:Macintosh,File Services(AFP/IP)说明:Macintosh,文件服务。端口:553服务:CORBA IIOP (UDP)说明:使用cable modem、DSL或VLAN将会看到这个端口的广播。CORBA是一种面向对象的RPC系统。入侵者可以利用这些信息进入系统。端口:555服务:DSF说明:木马PhAse1.0、Stealth Spy、IniKiller开放此端口。端口:568查看linux信息
2013-06-18 01:11:28
Linux内存: cat /proc/meminfocpu: cat /proc/cpuinfo硬盘: df -h -T(no device的设备看不到)fdisk -l可以在redhat9.0中看; redhat企业版不行.还有几个命令可以看很多硬件设备的信息.lspci -vdmidecodedmesgSolaris网卡速度: dmesg |grep linkCPU频率: psrinfo -v 或者mpstatcpu\内存等:prtdiag -v (大部分信息全部列出) 需要先进入/usr/platform/sun4u/sbin硬盘: iostat -Elinux 下查看网卡工作速率root@localhost ~]# mii-tooleth0: negotiated 100baseTx-FD, link ok 100Mlinux 下查看网卡工作速率Ethtool是用于查询及设置网卡参数的命令。概要:ethtool ethX //查询ethX网口基本设置ethtool –h //显示ethtool的命令帮助(help)ethtool –i ethX //查询ethX网口的相关信息ethtool –d ethX //查询ethX网口注册性信息ethtool –r ethX //重置ethX网口到自适应模式ethtool –S ethX //查询ethX网口收发包统计ethtool –s ethX [speed 10|100|1000]\ //设置网口速率10/100/1000M[duplex half|full]\ //设置网口半/全双工[autoneg on|off]\ //设置网口是否自协商我在网上看到有人写了这样的脚本来查看主机网卡流量#!/bin/bash#network#Mike.Xuwhile : ; dotime=`date +%m"-"%d" "%k":"%M`day=`date +%m"-"%d`rx_before=`ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-`tx_before=`ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-`sleep 2rx_after=`ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-`tx_after=`ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-`echo "$time Now_In_Speed: "$rx_result"kbps Now_OUt_Speed: "$tx_result"kbps"sleep 2done这个脚本是对的吗,而且为什么rx_result=$[(rx_after-rx_before)/256] , tx_result=$[(tx_after-tx_before)/256]是除以256???这个没看懂,求高手解决,谢谢啦脚本是计算两秒钟的 接收 发送出的网卡流量。除以 256 是因为你计算的 kbps 。网卡是 64字节一个包. .Linux下查看网卡实时流量方法1,使用slurm的监测方法:虽然GNOME的系统监视器可以查看到网络状态,但是像slurm这样的命令行工具,占用资源少,查看方便,用起来到是别有一番风味。今天把它介绍给大家。slurm 最初是给FreeBSD的做端口状态监视器,现在我简要的将一些功能做一下概述:? 显示实时流量吐吞状态? 视图显示可选择? 可以监视任何网络接口? 显示关于接口的详细信息安装slurm到Ubuntusudo aptitude install slurm这样安装就完成了Slurm 语法slurm [-hHz] [-csl] [-d delay] -i interface如果你想监视第一块网卡(eth0),使用下面的命令:slurm -i eth0终端里的输出类似下面这样。2,systat命令监测网络流量目前我只在RH AS4及FreeBSD 上有此命令,Ubuntu没有,估计要另行安装.使用方法为:systat -if 3查看网卡流量,其中3表示3秒刷新一次流量linux下如何查看网卡的类型法一:kudzu --probe --class=network法二:lspci网卡是百兆还是千兆ifconfig -m用ifconfig命令查看RX bytes和TX bytes这两项参数这是mii-tool的结果eth0: negotiated 100baseTx-FD flow-control, link oketh1: negotiated 100baseTx-FD flow-control, link ok这是lspci的信息12:02.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)12:02.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)BCM5704 Gigabit Ethernet千兆,千兆网卡接在百兆网上mii-tool 只能显示最高 100Mbps,即使当时是千兆的,也显示不出来测试机器的硬件信息:查看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz(看到有8个逻辑CPU, 也知道了CPU型号)# cat /proc/cpuinfo | grep physical | uniq -c4 physical id : 04 physical id : 1(说明实际上是两颗4核的CPU)# getconf LONG_BIT32(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l8(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)再完整看cpu详细信息, 不过大部分我们都不关心而已.# dmidecode | grep 'Processor Information'查看内 存信息# cat /proc/meminfo# uname -aLinux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux(查看当前操作系统内核信息)# cat /etc/issue | grep LinuxRed Hat Enterprise Linux AS release 4 (Nahant Update 5)(查看当前操作系统发行版信息)查看机器型号# dmidecode | grep "Product Name"查看网卡信息# dmesg | grep -i ethlinux查看硬件信息的命令在LINUX环境开发驱动程序,首先要探测到新硬件,接下来就是开发驱动程序。常用命令整理如下:用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)查看CPU信息:cat /proc/cpuinfo查看板卡信息:cat /proc/pci查看PCI信息:lspci (相比cat /proc/pci更直观)例子: lspci |grep Ethernet 查看网卡型号查看内存信息:cat /proc/meminfo查看USB设备:cat /proc/bus/usb/devices查看键盘和鼠标:cat /proc/bus/input/devices查看系统硬盘信息和使用情况:fdisk & disk - l & df查看各设备的中断请求(IRQ):cat /proc/interrupts查看系统体系结构:uname -admidecode查看硬件信息,包括bios、cpu、内存等信息dmesg | more 查看硬件信息对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:Cpuinfo 主机CPU信息Dma 主机DMA通道信息Filesystems 文件系统信息Interrupts 主机中断信息Ioprots 主机I/O端口号信息Meninfo 主机内存信息Version Linux内存版本信息Linux获取CPU的详细信息2010年07月26日 星期一 17:42如何获得CPU的详细信息:linux命令:cat /proc/cpuinfo用命令判断几个物理CPU,几个核等:逻辑CPU个数:# cat /proc/cpuinfo | grep "processor" | wc -l物理CPU个数:# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l每个物理CPU中Core的个数:# cat /proc/cpuinfo | grep "cpu cores" | wc -l是否为超线程?如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:# cat /proc/cpuinfo | grep “siblings”其他特征:目前intel新的多核心cpu都会在后面显示具体的型号数字,例如:model name : Intel(R) Xeon(R) CPU X3230 @ 2.66GHz说明是 Xeon 3230的cpu,而不显示型号的具体数字的,大部分都是奔腾的CPU很多主机商都骗人,用奔腾的cpu,却说是多核心的CPU。探针看到的数据:类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB没有具体的型号,缓存1M,一般都是奔腾系列的cpu,或者是intel假双核的cpu,具体要根据上面说的去判断。新的多核心cpu都能看到具体的型号。另外多核心的xeon的CPU,一般主频都不高,达到2.8和3.0的只有很少的几个高端CPU型号,一般主机商不会用这么好的。(1) 处理器使用率(2) 内存使用率(3) 流入流出数据包(4) 整体网络负载这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo三个文件中提取。如里有问题或对要提取的数据不太清楚,可以使用man proc来查看proc文件系统的联机手册。(1) 处理器使用率这里要从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。它们均位于/proc/stat文件的第一行。CPU的利用率使用如下公式来计算。CPU利用率 = 100 *(user + nice + system)/(user + nice + system + idle)(2) 内存使用率这里需要从/proc/meminfo文件中提取两个数据,当前内存的使用量(cmem)以及内存总量(amem)。内存使用百分比 = 100 * (cmem / umem)(3)网络利用率为了得到网络利用率的相关数据,需要从/proc/net/dev文件中获得两个数据:从本机输出的数据包数,流入本机的数据包数。它们都位于这个文件的第四行。性能收集程序开始记录下这两个数据的初始值,以后每次获得这个值后均减去这个初始值即为从集群启动开始从本节点通过的数据包。利用上述数据计算出网络的平均负载,方法如下:平均网络负载 = (输出的数据包+流入的数据包) / 2文本合并
2013-06-18 01:06:34
各种命令可谓是unix/linux系统中优美的部分,它们能够帮助我们搞定各种繁杂的任务,使我们的工作变得更轻松、更舒适、更给力。
命令之乐
文件拼接
假如我有这么一个文件,含有多行空行:
191 GW_8 [wyz] :/home/wyz/tmp>vi tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
这里仅是示例,具体应用场景,自己想吧。
问题:如何压缩空白行?
简而言之,即删除空行,你的方法呢?
好吧,先从最土的开始。。。。。。
方法一:通过vi编辑,通过stdin使用命令d逐行删除
文件内容少还好,成百上千行,效率就不行了。
方法二:借助第三方工具删除空行
比如使用Uedit,ftp方式打开后,选择空行并逐个删除。
192 GW_8 [wyz] :/home/wyz/perl/tmp>more tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
193 GW_8 [wyz] :/home/wyz/perl/tmp>
压缩空白行
各种命令可谓是unix/linux系统中优美的部分,它们能够帮助我们搞定各种繁杂的任务,使我们的工作变得更轻松、更舒适、更给力。
这里仅开个头,能不能持续、能不能有效果,端看大家的意愿了。如果能持续,长久累积下来,就是一个非常完美的文档与参考手册,价值不菲。
今天开个头(也可能是个结尾)。
实战演练1
文件拼接
假如我有这么一个文件,含有多行空行:
191 GW_8 [wyz] :/home/wyz/tmp>vi tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
这里仅是示例,具体应用场景,自己想吧。
问题:如何压缩空白行?
简而言之,即删除空行,你的方法呢?
都有哪些方法呢?
方法1:不用忽略了more
192 GW_8 [wyz] :/home/wyz/tmp>more tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
193 GW_8 [wyz] :/home/wyz/tmp>
more命令具有压缩空行的功能,你是否注意到了?
方法2、你使用最多的cat命令
194 GW_8 [wyz] :/home/wyz/tmp>cat -s tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
195 GW_8 [wyz] :/home/wyz/tmp>
等同于more,压缩了多余的空白行,仅保留一个空白行。
方法3、使用tr移除空行
201 GW_8 [wyz] :/home/wyz/tmp>cat tmp.txt | tr -s '\n'
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
202 GW_8 [wyz] :/home/wyz/tmp>
方法4、使用sed移除空行
202 GW_8 [wyz] :/home/wyz/tmp>cat tmp.txt | sed '/^$/d'
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
203 GW_8 [wyz] :/home/wyz/tmp>
方法5、使用xargs分割空行
206 GW_8 [wyz] :/home/wyz/tmp>cat tmp.txt | xargs -n 1
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
207 GW_8 [wyz] :/home/wyz/tmp>
Xargs中的” ”,即xargs使用空格作为默认定界符。
方法6、perl单行程序
176 GW_8 [wyz] :/home/wyz/tmp>perl -pi -e 's/^\s+$//g' tmp.txt;cat tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
177 GW_8 [wyz] :/home/wyz/tmp>
或者
131 GW_8 [wyz] :/home/wyz/tmp>perl -pe 's/^\s+$//g' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
方法7、uniq
204 GW_8 [wyz] :/home/wyz/tmp>uniq -u tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
或者
205 GW_8 [wyz] :/home/wyz/tmp>uniq tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
206 GW_8 [wyz] :/home/wyz/tmp>
方法8、grep
206 GW_8 [wyz] :/home/wyz/tmp>grep -v '^$' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
207 GW_8 [wyz] :/home/wyz/tmp>
228 GW_8 [wyz] :/home/wyz/tmp>cat tmp.txt | grep '^[0-9a-z]'
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
方式9、sort
219 GW_8 [wyz] :/home/wyz/tmp>sort tmp.txt | grep -v '^$'
1,2,3,4,5,6
7,8,9,0,1,2
a,s,d,f,g,h
q,w,e,r,t,y
或
221 GW_8 [wyz] :/home/wyz/tmp>sort -u tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
a,s,d,f,g,h
q,w,e,r,t,y
方式10
228 GW_8 [wyz] :/home/wyz/tmp>cat tmp.txt | grep '^[0-9a-z]'
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
方式11
229 GW_8 [wyz] :/home/wyz/tmp>grep '^[0-9a-z]' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
230 GW_8 [wyz] :/home/wyz/tmp>
方式12
238 GW_8 [wyz] :/home/wyz/tmp>sed '/^$/'d tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
方式13
264 GW_8 [wyz] :/home/wyz/tmp>sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
方式14
266 GW_8 [wyz] :/home/wyz/tmp>sed '/./\!d' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
267 GW_8 [wyz] :/home/wyz/tmp>
方式15
267 GW_8 [wyz] :/home/wyz/tmp>sed '$\!N; /^\(.*\)\n\1$/\!P; D' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
268 GW_8 [wyz] :/home/wyz/tmp>
方式16
269 GW_8 [wyz] :/home/wyz/tmp>sed '/./,/^$/\!d' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
方式17
270 GW_8 [wyz] :/home/wyz/tmp> sed '/^$/N;/\n$/D' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
271 GW_8 [wyz] :/home/wyz/tmp>sed '/^$/N;/\n$/N;//D' tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
方式18 uniq
279 GW_8 [wyz] :/home/wyz/tmp>uniq tmp.txt
1,2,3,4,5,6
7,8,9,0,1,2
q,w,e,r,t,y
a,s,d,f,g,h
280 GW_8 [wyz] :/home/wyz/tmp>
方式19
281 GW_8 [wyz] :/home/wyz/tmp>sort tmp.txt | grep -v '^$'
1,2,3,4,5,6
7,8,9,0,1,2
a,s,d,f,g,h
q,w,e,r,t,y
282 GW_8 [wyz] :/home/wyz/tmp>
还有其他的方法,是否想到了呢,想到了就接着补充吧。
linux几个命令
2013-03-04 20:05:09
==========================================================================查看http的并发请求数及其TCP连接状态netstat -n | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a, S[a]}'TIME_WAIT 44SYN_SENT 5ESTABLISHED 226==========================================================================获取IP地址ifconfig eth0 | sed -n '2'p | awk '{print $2}' | cut -c 6-22ifconfig eth0 | grep "inet addr" | awk '{print $2}' | cut -c 6-30ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | cut -d: -f2 | awk '{print $1}'ifconfig eth0 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'netstat或者grep,然后sed s替换==========================================================================杀掉某用户下所有进程ps -ef | grep oracle | awk '{print $2}' | xargs kill -9lsof -i:1521 | grep -v "PID" | awk '{print "kill -9",$2}'| sh==========================================================================原端口1521建立连接的对应机器的IP与端口,并统计数量netstat -an -t | grep ":1521" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort | uniq -c==========================================================================查找某目录下txt文件,计算其文件大小总和find . -name "*.txt" -exec wc -c {} \; | awk '{print $1}' | awk '{a+=$1}END{print a}'==========================================================================杀死僵尸进程ps -eal | awk '{if ($2=="Z") print $2}' | xargs kill -9==========================================================================怎样知道进程在那个CPU上?ps -eo pid,args,psr==========================================================================查找目录下文件大于100Mfind . -size +100M -type f查询目录下文件,显示单位为Mbfind . -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb %s\n",size,$2);}' | head统计目录下文件大小du $1 | sort -rn | sort -n | awk '{printf "%7.2fM --> %s\n",$1/1024,$2}' | sed 's:/.*/([^/]{1,})$:1:g'==========================================================================替换sed -i 's/sysread/read/gi' d.txtperl -p -i -e 's/sysread/read/gi' d.txt==========================================================================统计一个目录中的目录个数ls -l | awk '/^d/' | wc -l统计一个目录中的文件个数ls -l | awk '/^-/' | wc -l统计一个目录中的全部文件数find ./ -type f -print | wc -l统计一个目录中的全部子目录数find ./ -type d -print | wc -l==========================================================================去掉第一列(如行号代码)awk '{for(i=2;i<=NF;i++) if(i!=NF) {printf $i " "}else{print $i} }' a.txt==========================================================================删除大小为0的文件rm -i `find . -size 0`find . -size 0 | xargs rm {} \;find . -size 0 | xargs rm -rf &==========================================================================tar 分卷压缩与合并zip 有4G压缩限制,如果解决这个限制?分卷压缩以100M为例tar分卷压缩: tar -cvzpf - portal600 | split -d -b 100mtar多卷合并: cat x* > portal600.tar.gz
标题搜索
我的存档
数据统计
- 访问量: 74366
- 日志数: 162
- 图片数: 1
- 文件数: 13
- 建立时间: 2008-06-11
- 更新时间: 2015-09-22