小编Mr *_*ubs的帖子

在Bash脚本中解析命令输出

我想运行一个命令,提供以下输出并解析它:

[VDB VIEW]
[VDB] vhctest
        [BACKEND] domain.computername: ENABLED:RW:CONSISTENT
        [BACKEND] domain.computername: ENABLED:RW:CONSISTENT
        ...
Run Code Online (Sandbox Code Playgroud)

我只对一些关键作品感兴趣,例如'ENABLED'等.我不能只搜索ENABLED,因为我需要一次解析每一行.

这是我的第一个脚本,我想知道是否有人可以帮助我?

编辑:我现在有:

cmdout=`mycommand`

while read -r line
do
   #check for key words in $line
done < $cmdout
Run Code Online (Sandbox Code Playgroud)

我认为这样做了我想要的但是它似乎总是在命令输出之前输出以下内容.

./myscript.sh:29:无法打开...:没有这样的文件

我不想写一个文件来实现这一点.

这是psudo代码:

cmdout=`mycommand`

loop each line in $cmdout
   if line contains $1
       if line contains $2
            output 1
       else
            output 0
Run Code Online (Sandbox Code Playgroud)

linux bash scripting

4
推荐指数
1
解决办法
1万
查看次数

如何从网站重新启动应用程序池,而无需将应用程序池标识设置为本地系统?

我在 .Net 中有一个应用程序,它为其他应用程序执行各种管理/配置。我需要能够停止和启动应用程序池。我已经实现了这一点,但前提是我将应用程序池作为本地系统运行(这通常被认为是一个坏主意)。

最初,我使用 Process.Start (使用适当的 ProcessStartInfo 对象)启动了 appcmd.exe,但这最终导致我的退出代码为 -1073741502,进一步的研究表明我需要使用 Windows SDK 进行调试,因为它与程序集未加载,因此我在命名空间中找到了一个似乎更简单的解决方案Microsoft.Web.Administration

我使用下面的代码,但它似乎要求运行它的 AppPool 具有本地系统的身份(否则我得到System.UnauthorizedAccessException) - 有没有一种方法可以使用权限较低的帐户启动/停止(我更喜欢使用应用程序身份) - 虽然暂时提升权限也是可以的。

    Dim serverManager As New ServerManager()
    Dim applicationPoolCollection As ApplicationPoolCollection = serverManager.ApplicationPools

    For Each applicationPool As ApplicationPool In applicationPoolCollection

        If applicationPool.Name = appPoolName Then
            applicationPool.Stop()
            applicationPool.Start()
        End If

    Next
Run Code Online (Sandbox Code Playgroud)

我已将自定义帐户设置为身份,但我无法确定该用户的最小 ACL 需要是多少。作为测试,我将用户添加到本地管理员组,但仍然得到System.UnauthorizedAccessException- 这表明我需要为用户配置特定权限,但我不确定这是什么或如何做到这一点。有人可以帮忙吗?

问题也在这里解释

.net iis-7 application-pool .net-3.5 applicationpoolidentity

4
推荐指数
1
解决办法
2971
查看次数

为什么会发生这种单身行为?

我的一个初级程序员创建了一个单身人士,但它表现得很奇怪:

我知道你不应该访问这样的对象,但是他们是这样做的,我无法解释为什么会发生这种情况 - 在调用remove实例之后,我在该行上放了一个断点,我仍然可以访问someObject对象及其属性.这种方式有意义,因为您访问mySingleton对象的引用,而不是myInstance,...正如您所看到的,我无法清楚地解释它,任何人都可以帮忙吗?

例如

    Dim x As MySingleton = MySingleton.GetInstance()

    x.someObject.int = 5
    x.someObject.str = "hello"

    Console.Out.WriteLine(x.someObject.int.ToString)
    Console.Out.WriteLine(x.someObject.str.ToString)

    MySingleton.RemoveInstance()

    Console.Out.WriteLine(x.someObject.int.ToString) //still exists!
    Console.Out.WriteLine(x.someObject.str.ToString) //still exists!
Run Code Online (Sandbox Code Playgroud)

这是单身人士的Psuedo代码:

Public Class MySingleton

    Private Shared _myInstance As MySingleton

    Public someObject As New Class1

    Public Shared Function GetInstance() As MySingleton
        If _myInstance Is Nothing Then
            _myInstance = New MySingleton
        End If
        Return _myInstance

    End Function

    Public Shared Sub RemoveInstance()
        _myInstance = Nothing
    End Sub


    End Class
Run Code Online (Sandbox Code Playgroud)

就个人而言,我不会像这样编写单例 - 我将实例对象作为一个单独的类.但每个人都是自己的.

.net language-agnostic vb.net design-patterns

3
推荐指数
1
解决办法
101
查看次数

在finaliser中调用Connection.Close/Dispose

我总是在finally块中调用Connection.Close,但是我今天学到了你不应该这样做:

不要在类的Finalize方法中对Connection,DataReader或任何其他托管对象调用Close或Dispose.在终结器中,您应该只释放您的类直接拥有的非托管资源.如果您的类不拥有任何非托管资源,请不要在类定义中包含Finalize方法

因此,了解到处理SqlCommand对象不会释放或关闭分配给它的连接对象,下面的(下面的简化代码)是否会同时处理命令和连接对象?如果我确定我总是调用Connection.Close,我真的需要调用Connection.Dispose吗?

Using cmd As New NpgsqlCommand(String.Empty, new connection())
    cmd.CommandText = "some sql command here"
    sqlCmd.Connection.Open()
    ...create and fill data table
    sqlCmd.Connection.Close()
End Using
Run Code Online (Sandbox Code Playgroud)

.net connection ado.net garbage-collection database-connection

3
推荐指数
1
解决办法
1006
查看次数

使用继承来反对Postgres中的反模式(OTLT)

我知道"一个真正的查找表"的概念是一种反模式,通常不应该使用(参考许多网上文章).但是,我想知道在Postgres中使用表继承时是否仍然如此?

您永远不会读取或插入主查找表 - 它更多地充当您的其他查找表的模板,您不会丢失任何参考完整性,(可能会因为更大的数量而获得在您的缓存块中浪费的空间)表中的数据),并且当您通过子表插入时,您甚至不需要类型.

我的OTLT将包含所有查找表所需的以下列:

CREATE TABLE sl_lookupmaster
(
  lookupid bigserial NOT NULL,
  parent bigint,
  tstamptdt timestamp without time zone NOT NULL DEFAULT localtimestamp,
  description character varying(500) NOT NULL,
  entityref bigint NOT NULL,
  deleted boolean NOT NULL DEFAULT false,
  CONSTRAINT sl_lookupmaster_pkey PRIMARY KEY (lookupid)
)
Run Code Online (Sandbox Code Playgroud)

然后你继承了那个.

人们怎么想,这还是一个设计错误,这仍然是OTLT吗?

database database-design design-patterns

3
推荐指数
1
解决办法
1357
查看次数

如何使WCF客户端符合特定的WS-Security

我必须使用Web服务安全X.509证书令牌配置文件1.1 OASIS标准规范,2006年2月1日,使我的WCF客户端使用Web服务(IBM DataPower)并签署/加密请求.

到目前为止,我已经创建了一个自定义绑定并"思考"我正在沿着正确的方向工作:

更新以反映最新的尝试

Private Function CreateCustomBinding() As Channels.Binding

    Dim asbe As New Channels.AsymmetricSecurityBindingElement

    asbe.MessageSecurityVersion = MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10

    asbe.InitiatorTokenParameters = New ServiceModel.Security.Tokens.X509SecurityTokenParameters
    asbe.RecipientTokenParameters = New ServiceModel.Security.Tokens.X509SecurityTokenParameters

    asbe.MessageProtectionOrder = Security.MessageProtectionOrder.EncryptBeforeSign

    asbe.SecurityHeaderLayout = SecurityHeaderLayout.Strict

    asbe.IncludeTimestamp = True
    asbe.SetKeyDerivation(False)

    asbe.DefaultAlgorithmSuite = Security.SecurityAlgorithmSuite.Basic128Rsa15  'By default, AES-128 is used as the encryption algorithm.

    'Add the elements to the custom binding
    Dim myBinding As New CustomBinding

    'element order is important - see http://msdn.microsoft.com/en-us/library/ms733893(v=vs.90).aspx

    'Protocol Binding Elements (security)
    myBinding.Elements.Add(asbe)

    'Encoding Binding Element  
    myBinding.Elements.Add(New TextMessageEncodingBindingElement(MessageVersion.Soap11WSAddressing10, System.Text.Encoding.UTF8)) …
Run Code Online (Sandbox Code Playgroud)

wcf ws-security soap wcf-client x509certificate

3
推荐指数
1
解决办法
9878
查看次数

在动态列名中阻止SQL注入

如果没有在我的系统的一部分中编写一些动态的sql条件(使用Postgres),我无法逃脱.

我的问题是如何最好地避免SQL注入与我目前使用的方法.

编辑(推理):许多表中有许多列(一个数字增长(仅)并在其他地方维护).我需要一种允许用户决定他们想要查询哪个(预定义)列的方法(如果需要,还可以应用字符串函数).查询本身太复杂,用户无法自己编写,也无法访问数据库.有1000个用户有不同的要求,我需要保持尽可能灵活 - 我不应该重新访问代码,除非主要查询需要更改 - 此外,没有办法知道用户需要什么条件使用.

对于某些大型SQL查询,我有对象(通过Web服务接收)生成条件(生成方法在下面 - 它还不完美).

_FieldName是用户可编辑的(参数的名字,但它并不需要定),我很担心它可能是一个攻击向量.我在字段名称周围加上双引号(请参阅带引号的标识符)以尝试清理字符串,这样它就永远不会成为关键字.我还可以根据字段列表查找字段名称,但很难及时维护.

不幸的是,用户必须输入条件标准,我相信必须有更多我可以添加到sanatize方法?引用列名称是否安全?(我的有限测试似乎是这么认为的).

一个示例构建条件是"AND upper(brandloaded.make)像'O%'和upper(brandloaded.make)不像'OTHERBRAND'"......

任何帮助或建议表示赞赏.

Public Function GetCondition() As String
   Dim sb As New Text.StringBuilder

   'put quote around the table name in an attempt to prevent some sql injection
   'http://www.postgresql.org/docs/8.2/static/sql-syntax-lexical.html
   sb.AppendFormat(" {0} ""{1}"" ", _LogicOperator.ToString, _FieldName)

   Select Case _ConditionOperator
      Case ConditionOperatorOptions.Equals
          sb.Append(" = ")

      ...

   End Select

   sb.AppendFormat(" {0} ", Me.UniqueParameterName) 'for parameter

   Return Me.Sanitize(sb)

End Function

Private Function Sanitize(ByVal sb As Text.StringBuilder) As …
Run Code Online (Sandbox Code Playgroud)

.net sql vb.net postgresql sql-injection

3
推荐指数
1
解决办法
2144
查看次数

为什么IIS7 Invariant Culture默认为en-US?

我们刚刚设置了一个新的Windows 2008 R2服务器,当它被设置(包括IIS)时,文化设置设置为英语("美国").然后他们根据其他服务器改为英语("英国").没有其他设置被更改.

IIS设置尚未更改,Web服务中没有设置文化的位置,我还检查了machine.config和web.config - 在所有级别.Net全球化设置为在新旧服务器上保持不变.

但是在新的2008R2服务器中,Threading.Thread.CurrentThread.[CurrentUICulture/CurrentCulture].Name是:

UI Culture = en-US (1033)
Culture = en-US (1033)
Run Code Online (Sandbox Code Playgroud)

在旧服务器(2008年,而不是R2)中,它是:

UI Culture = en-US (1033)
Culture = en-GB (2057)  
Run Code Online (Sandbox Code Playgroud)

我们有一些旧的遗留代码,要求默认为en-GB,我需要以与旧服务器相同的方式实现,但无法弄清楚为什么这是默认为en-US而不是en-GB.

我已经检查了这个答案/sf/answers/779473551/,但它没有帮助.(我意识到我可以强迫新服务器这样做).

那么为什么文化违约到了美国呢?

.net globalization iis-7

3
推荐指数
1
解决办法
2686
查看次数

如何使用SSIS归档相关数据(在不同的表中)

在我们的数据库中的许多表中存在许多(较旧的)相关数据,这些表需要归档到单独的数据库,然后从原始数据库中删除(可能每天).归档(和删除)的内容由业务规则决定.我们不希望此存档中有更新的数据(它会更改并经常访问).如果需要并可能报告,某些归档数据可能需要转回.

我需要在SSIS中提出一个高效且易于维护的解决方案.我至少可以想到三种方法:

  1. 编写一个包含大量左连接的大型select语句来获取我想要的所有数据,然后在内存中查看这些数据或将其存储在临时表中
  2. 按表格工作,选择作业,然后选择其他表格中的相关数据
  3. 类似于第一种方法,只是将数据转储到去规范化的表中(看起来像一个懒惰的方法?)

我考虑过临时表,虽然我没有看到这种情况下的好处 - 我可以使用时间戳(时间戳=进程已启动)将数据直接复制到存档表,然后在完成时,去删除时间戳为时间戳的ID过程开始的时间.一旦我确定了工作ID,我就知道其他需要存档的数据.

我正在寻找最佳方法,有没有人有另一种方法?其他人如何实现这一目标?

database ssis data-warehouse archive

2
推荐指数
1
解决办法
3568
查看次数

如何在切换bootstrap样式按钮组时检查复选框标签文本

我正在尝试更改引导样式按钮组复选框的标签文本,但一旦更改,就无法再次更改文本.(JSFiddle)

HTML:

<div class="btn-group form-group pull-right" data-toggle="buttons">
    <label id="lblfilter-green" for="filter-green" class="btn btn-success">
        <input type="checkbox" id="filter-green"/>
        On
    </label>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$('#lblfilter-green').on('click', function (e) {
    var value = $('#filter-green').is(':checked');                

    if (value) {    
        $('#lblfilter-green').text("Off");
    } else {
        $('#lblfilter-green').text("On");
    }
});
Run Code Online (Sandbox Code Playgroud)

注意 - 如果您使用更改或单击事件并且我只是以绿色按钮为例,我不确定是否重要.

jquery html5 twitter-bootstrap

2
推荐指数
1
解决办法
2万
查看次数