Articles of Linux操作系统

如何解决“iptables:无链/目标/匹配的名称”?

我在我的linuxembedded式系统上构build并安装了iptables。 如果我列出所有的规则,一切工作正常: #iptables –list Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 但是,如果我添加一个新的规则来阻止icmp ping,我会得到follwing错误: iptables -A INPUT -i eth0 -p icmp –icmp-type any -s 0/0 -d 10.20.3.179 -m state –state NEW,ESTABLISHED,RELATED -j DROP iptables: No chain/target/match […]

检查正在运行的程序中的内存泄漏

出于对检查内存泄漏的好奇心,我有个疑问。 作为一个在过去的一两年中经常使用valgrind来检查代码中的内存泄漏的人,我突然想到在程序生命周期之后 ,它只能检测到丢失/未logging的内存。 所以,有鉴于此,我在想,如果你有一个长期运行的程序, malloc()是间歇性的,在应用程序退出之前不会free() ,那么潜在的吃内存(不一定是通过泄漏 )是巨大的,使用这些工具是不可观察的,因为他们只检查程序的生命周期。 是否有类似GDB的工具可以在运行时停止应用程序,并检查在应用程序生命周期中是否被引用的内存?

混淆Linux上的mktime的行为?

我正在使用Suse 10中的mktime(struct tm *)函数。 现在,夏令时启用时,我注意到一些奇怪的行为。 比方说,我已经启用了夏令时,从9月15日18:10开始,夏令时间为30分钟。 现在,当我用tm结构调用具有date为Sep 15 18:10且tm_isdst设置为0的mktime时,只有在tm_isdst设置为1的情况下,才能在tm结构中返回相同的值。 但是,如果通过date为9月15日18:10与tm_isdst设置为1,那么我觉得时间改为17:40。 在9月15日18:10至9月15日18:40之间的时间内,tm结构中的这种修正被注意到,但是之后没有发生修正,并且保持启用dst标志。 即使我通过9月16日18:10的date,没有时间纠正发生只有dst标志保持启用。 我完全困惑。 这是mktime的正确行为吗?

Python的ctypes从Linux上的libc调用reboot()

我试图通过ctypes从Python中的libc调用rebootfunction,我只是不能得到它的工作。 我一直在引用man 2 reboot页面( http://linux.die.net/man/2/reboot )。 我的内核版本是2.6.35。 下面是来自交互式Python提示符的控制台日志,我试图让我的机器重启 – 我做错了什么? 为什么不是ctypes.get_errno()工作? >>> from ctypes import CDLL, get_errno >>> libc = CDLL('libc.so.6') >>> libc.reboot(0xfee1dead, 537993216, 0x1234567, 0) -1 >>> get_errno() 0 >>> libc.reboot(0xfee1dead, 537993216, 0x1234567) -1 >>> get_errno() 0 >>> from ctypes import c_uint32 >>> libc.reboot(c_uint32(0xfee1dead), c_uint32(672274793), c_uint32(0x1234567), c_uint32(0)) -1 >>> get_errno() 0 >>> libc.reboot(c_uint32(0xfee1dead), c_uint32(672274793), […]

如何从python导入path中删除当前目录

我想和hg本身的mercurial仓库一起工作。 也就是说,我从https://www.mercurial-scm.org/repo/hg克隆了Mercurial,并希望在克隆的仓库中运行一些hg命令。 问题是,当在这个克隆中运行hg时, hg可执行文件尝试从这个目录加载它的python模块而不是从/usr/lib/pythonVERSION等等。据我所知,这是因为Python导入pathsys.path包含一个空string第一项可能意味着“当前目录”。 没有设置PYTHONPATH环境variables。 问题是我怎样才能防止我安装的hg导入“错误”的模块。

如何使用awk将文件的某个字段更改为大写?

我有这样的文本文件: 1 http http 3 4 5 2 dns dns 4 3 ftp ftp 4 5 6 8 我想输出是这样的: 1 HTTP http 3 4 5 2 DNS dns 4 3 FTP ftp 4 5 6 8 我想把第二个字段从小写变成大写,只有第二个字段。 请注意,某一行中的字段数量不固定。 我可以用awk完成这个目标吗?

Socat在连线closures后终止

此命令(串行端口redirect器)接受TCP上的单个连接:11313: socat PTY,link=/dev/ttyV1,echo=0,raw,unlink-close=0 TCP-LISTEN:11313,forever,reuseaddr 但是,当连接丢失时,上述socat进程被终止,客户端无法连接。 我可以通过在上面的命令结尾添加fork选项来解决这个问题。 但是,然后多个客户端将能够连接。 但是我只想接受一个连接。 任何想法如何实现这一目标?

freeTDS bash:在Microsoft SQL Server中执行sql查询

我可以使用freeTSD和命令行通过Mint Linux VM连接到Microsoft SQL Server 2008实例,以在其上执行sql语句。 现在我想在bash脚本中自动化这个。 我能够成功login我的bash脚本: TDSVER=8.0 tsql -H servername -p 1433 -D dbadmin -U domain\\Administrator -P password 然后我有我的SQL查询: USE dbname GO delete from schema.tableA where ID > 5 GO delete from schema.tableB where ID > 5 GO delete from schema.tableC where ID > 5 GO exit 这在通过freeTSD命令行手动执行时有效,但不能在我放入bash文件时使用。 我跟着这个post: freeTSD&bash 。 这是我的bash脚本示例: echo […]

我该如何解决这个错误? Gtk-WARNING **:GModule …初始化检查失败:GLib版本太旧(微不匹配)

我正在用matplotlib编写一个python程序,我得到这个错误: GLib-GIO-Message:使用“内存”GSettings后端。 您的设置不会被保存或与其他应用程序共享。 (python:6304):Gtk-WARNING **:GModule(/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)初始化检查失败:GLib> version too old (微不匹配) (python:6304):Gtk-WARNING **:加载IM上下文types'ibus'失败 (python:6304):Gtk-WARNING **:GModule(/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)初始化检查失败:GLib版本太旧微不匹配) (python:6304):Gtk-WARNING **:加载IM上下文types'ibus'失败 (python:6304):Gtk-WARNING **:GModule(/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)初始化检查失败:GLib版本太旧微不匹配) (python:6304):Gtk-WARNING **:加载IM上下文types'ibus'失败 该程序完成执行,但错误不会消失。 我正在运行Ubuntu 16。 我尝试重新安装Glib,但没有任何改变。 我在网上寻找帮助,但找不到解决scheme。 我是一个noob,我不知道如何解决这个问题。 谁能帮我吗? 我真的很感激你的时间!

php shell_exec多个命令在后台一次

我在php / linux有一个问题,如下所述: 我必须通过shell_exec(plesk cli命令subscription webspace-off)执行一个linux命令。 问题是,当我这样做从PHP的工作,但重新启动Apache,导致一个空白页面,而Apache重新启动。 为了摆脱这个问题,我必须在后台调用shell_exec,延迟(预期结果:网页加载,4秒后运行linux脚本)。 我做了一些尝试,如: shell_exec("sleep 4 && /var/www/vhosts/site.com/httpdocs/wrapper2 3 –webspace-off ".$domain_name." &"); 但PHP会等待响应。 不知何故,我需要睡眠一个Linux命令的执行,所有这一切都必须运行在BG,并不等待响应。 谢谢