小编sir*_*004的帖子

从psycopg2异常中获取错误消息

这是我第一个广泛使用psycopg2的项目.我试图找到一种方法来提取psql错误消息,无论何时连接尝试失败.我已经测试过,如果所有变量都设置正确,下面的代码就可以工作,但是每当出现错误情况时(例如用户选择不存在的数据库),Python会给我以下内容:

I am unable to connect to the database
None
Traceback (most recent call last):
  File "./duplicate_finder.py", line 163, in <module>
    main(sys.argv[1:])
  File "./duplicate_finder.py", line 142, in main
    print e.diag.message_detail
AttributeError: 'OperationalError' object has no attribute 'diag'
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的catch-all方法来捕获psql在连接失败时生成的任何错误消息,或者我是否需要编写除多个psycopg2异常的块之外的其他消息?

从我的脚本中提取:

import sys, getopt, os, time, csv, psycopg2

    ...
    ...

    conn_string = "host=" + dbhost + " dbname=" + database + " user=" + dbuser + " password=" + dbpass
    try:
        conn = psycopg2.connect(conn_string)
    except psycopg2.Error as e:
        print "Unable to connect!" …
Run Code Online (Sandbox Code Playgroud)

python postgresql psycopg2

11
推荐指数
3
解决办法
3万
查看次数

rsyslog - 基于属性的过滤不起作用

我几乎讨厌为此提交一个主题,但我自己无法弄清楚。我正在运行 Federoa 17 服务器,并且尝试通过 rsyslog 将 iptables 中丢弃的数据包记录到单独的日志文件中,但它一直将它们发送到 /var/log/messages 。

我的防火墙脚本的片段:

#!/bin/bash
iptables -F

# My accepted rules would be here

iptables -A INPUT -j LOG --log-prefix "iptables: "
iptables -A FORWARD -j LOG --log-prefix "iptables: "

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables-save > /etc/sysconfig/iptables
service iptables restart
iptables -L -v
Run Code Online (Sandbox Code Playgroud)

应该从 iptables 捕获消息的配置文件:

[root@fc17 ]# cat /etc/rsyslog.d/iptables.conf 
:msg, startswith, "iptables: "  /var/log/iptables.log
& ~
Run Code Online (Sandbox Code Playgroud)

我的 rsyslog.conf 文件中的片段:

#### GLOBAL DIRECTIVES ####

# …
Run Code Online (Sandbox Code Playgroud)

linux syslog fedora iptables rsyslog

5
推荐指数
1
解决办法
9620
查看次数

SSLCipherSuite别名

请原谅我,如果以前曾经问过这个问题,但我真的想深入了解SSLCipherSuite指令在Apache和其他地方的工作原理.首先,我熟悉密码的四个部分:

密钥交换算法
认证算法
密码编码算法(批量加密)
MAC摘要算法(散列函数)

这是我的Apache盒子的默认SSLCipherSuite:

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

根据我目前的知识和我在网上看到的内容,以下是我读到的内容:

HIGH - 启用使用Triple-DES的所有密码MEDIUM - 启用所有128位加密的密码!aNULL - 禁用空认证,以后不能通过"+"(加号)重新添加到字符串!MD5 - MD5哈希被禁用,以后不能通过"+"(加号)符号重新添加到字符串中

现在我的问题是,别名HIGH,MEDIUM和LOW是指JUST使用的批量加密算法,还是用作整个密码套件(上面列出的所有四个类别)?将它设置为这样会有问题吗?

SSLCipherSuite HIGH

或者是否会产生意想不到的后果,因为对其他三个类别没有限制?如果是这种情况,除了使用MD5作为哈希算法还有什么其他的东西,我应该从密钥交换,身份验证,MAC摘要算法类别中禁用?

谢谢,如果有任何需要澄清或扩展,请告诉我!

apache ssl openssl

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

标签 统计

apache ×1

fedora ×1

iptables ×1

linux ×1

openssl ×1

postgresql ×1

psycopg2 ×1

python ×1

rsyslog ×1

ssl ×1

syslog ×1