Questions tagged «linux»

这些问题通常与Linux有关-并非特定于特定发行版。如果问题恰好在Linux环境中,请在问题正文中指定Linux发行版,但不要使用/ linux标记。

1
为什么“ du --apparent-size”有时会偏离90%以上?
我正在开发一个构建Pacman软件包的软件(基本上是带有一些特殊元数据文件的tarball)。测试套件将生成一些程序包,然后将结果程序包与记录的预期结果进行比较。 程序包中记录的元数据中的字段之一是程序包的安装大小,该大小由du -s --apparent-size在将其压缩之前在根目录上运行确定。 所有这些在我开发的本地Arch Linux机器上都可以正常工作。每次运行测试时,都会精确复制这些软件包,包括以字节为单位的安装大小(甚至不是千字节,字节!)。 现在,我还在Travis上启用了此测试,据我所知,它在基于Ubuntu-12.04的容器上运行(据我对Travis文档的了解)。在那里,测试大部分时间都通过了。大多数时候。有时,它计算出的安装大小减少了80-99%。 这是一个测试失败的示例:https : //travis-ci.org/holocm/holo/builds/89326780(该测试成功之前。)相关的区别之一是 @@ -37,7 +37,7 @@ pkgdesc = my foo bar package url = packager = Unknown Packager - size = 37728 + size = 1464 arch = any license = custom:none replaces = foo-bar<2.1 令人费解的是,它仅在某些时间发生,没有明显的模式。测试会像往常一样排列相同的文件,du -s --apparent-size在结果树上运行,并得出完全错误的结果。我尝试在Ubuntu 12.04 VM上重现此错误,虽然我看到它出现一次或两次,但我看不到那里出现任何可以帮助我重现此问题的模式。 也许有人在想什么可能导致此问题? 编辑:哦,实际上我观察到一种模式。du每个测试用例运行一次。如果第一个测试用例失败,则此运行中的所有测试用例都将失败。

1
如果待处理的字符超过256个,为什么8250 UART驱动程序不唤醒TTY?
这种if条件的动机是什么void serial8250_tx_chars(struct uart_8250_port *up)? if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) uart_write_wakeup(port); 自Linux 1.1.13(1994年5月)以来一直存在,并且在大多数UART驱动程序中都重复使用。 背景:定制的Linux 3.4.91,ARMv7上的嵌入式系统,UART端口0配置为38400波特,I / o使用16字节FIFO。在我们的设置中,所有这些都无法更改。 当的printf-ING 非常沉重经由UART在控制台上,内部的4kB缓冲液(UART_XMIT_SIZE)填满,然后档的用户空间进程直到缓冲器被清空(这需要在38400波特1秒!)。然后,此行为重复。这是因为n_tty_write()当缓冲区已满时,函数将进入睡眠状态,并且由于上述问题而无法长时间唤醒。 如果只删除此检查,我会发现它更自然,更有效。然后,printfs将尽快填充缓冲区,然后以清空缓冲区的速度继续,而不是我观察到的突发处理。 在我的环境中,它可以正常工作,但我肯定会丢失或误解某些东西。当前实施必须有一个理由。如果我消除这种状况,会有副作用吗? 作为附带的问题:是否有配置选项来调整此行为,例如使printf总是立即返回并在缓冲区已满时丢弃输出?

2
使用空格删除多个文件中的某些字符
我正在尝试重命名目录中的一堆音乐曲目,但出现此错误: 移动多个文件时,最后一个参数必须是目录 这是脚本: for file in * ; do mv $file $(echo $file |sed 's/^.\{5\}//g') done 这适用于没有空格的文件,我将如何修改此脚本?
8 linux  bash  scripting  sed 

1
4.0及更高版本的Linux内核中的USB驱动程序有何变化?
内核高达3.19,我所有的USB设备都能完美运行。 在升级到4.0或更高版本时,我的某些USB设备停止工作,并且内核产生如下错误: [ 3.369436] usb 9-1: device descriptor read/64, error -62 [ 3.593543] usb 9-1: new full-speed USB device number 4 using ohci-pci [ 3.997572] usb 9-1: device not accepting address 4, error -62 [ 4.120602] usb 9-1: new full-speed USB device number 5 using ohci-pci [ 4.524792] usb 9-1: …
8 linux  kernel  usb  dvb 

1
跟踪Linux / ARM中的库调用的工具
我正在寻找一种工具,该工具可以跟踪对Linux / ARM共享库中的函数的调用。基本上,我希望能够指定一个命令行,并让该工具生成记录的被调用库函数和传递的参数。我想象某种形式的函数挂钩可以用于此目的。 我知道ltrace,它提供了我所需的功能。但是,ltrace它不适用于我: 跟踪更复杂的程序时通常会出现段错误。 非常慢 我正在寻找一个更强大的替代方案。速度不错,但不是我最关心的。首先,我希望有一种跟踪库调用的方法,该方法可以分析任何(非规避)程序。 Sysdig在ARM中也不起作用,并且dtrace的端口仅在NetBSD中仍在beta中工作。 有人知道这种工具处于可用状态吗?


1
/ proc / pid / maps中的共享库映射
为什么/proc/pid/maps在同一个库中包含一些记录?这是一个例子: 7fae7db9f000-7fae7dc8f000 r-xp 00000000 08:05 536861 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 7fae7dc8f000-7fae7de8f000 ---p 000f0000 08:05 536861 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 7fae7de8f000-7fae7de97000 r--p 000f0000 08:05 536861 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 7fae7de97000-7fae7de99000 rw-p 000f8000 08:05 536861 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 这是什么意思 ?

1
如何最好地跟踪新手管理员的冒险经历
我有此用户,但其sudo权限有限,但是他设法不时搞砸。我想密切注意他的冒险历程,以便我能以更少的挖掘力来弥补任何损失。理想情况下,我希望具有以下功能的服务可以很好地集成和呈现 曲目外壳输入和输出一样ttyrec(或者script或者sudo如果日志记录设置),并可以重放像ttyplay(或会话scriptreplay或sudoreplay)兼容性与ncurses的程序将是很好的,但不是必需的,ttyrec显然可以做到这一点。 跟踪文件访问,创建和修改。理想情况下,每次更改或删除文件时,它也可以备份文件。 到目前为止,我已经找到了一些我必须设置的工具才能获得大多数所需的功能,但是我还没有遇到能够很好地集成它们的OSS产品(Lynis社区版在功能上还不清楚) 。 我可以把ttyrec $(mktemp),script $(mktemp)或sudo -u $USER -i(使用sudo的日志记录设置)在其.bashrc登录的外壳IO。 建立审计跟踪一些目录的文件访问,像/usr,/etc,/var。 他登录时创建LVM快照,但这有点过头了,并且可能会降低系统性能。 编辑: ttyrec似乎是一个更好的选择script,它将满足我所有的IO日志记录要求。现在,我需要找到一种记录文件操作的好方法。 如有任何建议或最佳做法的建议,我将不胜感激。

1
什么是/ proc / <pid> / net / dev?
我对每个进程的网络I / O计数器都感兴趣,就像其中的那些计数器一样/proc/net/dev,发现了我认为的内容/proc/&lt;pid&gt;,即/proc/&lt;pid&gt;/net/dev。但这似乎太简单了,因为它们包含与系统相同的计数器。 如果我在系统之间进行比较,则&lt;pid&gt;得到相同的计数器*。因此,这使我想知道它应该代表什么?还是仅/proc/net/dev通过将权限设置为/proc/net/&lt;pid&gt;/dev而不是全局设置来允许特定进程读取的方式? man proc没有对此进行记录,并且http://man7.org/linux/man-pages/man5/proc.5.html也没有 发行版:CentOS 7.1 w /内核 3.10.0-229.el7.x86_64 *diff &lt;(cat /proc/&lt;pid&gt;/net/dev) &lt;(cat /proc/net/dev)

2
如何正确递归地整理文件(包括隐藏的目录)
这个难题是由git pull根运行引起的。 我这样做有多种原因...我希望我的设备在启动时更新代码,rc.local并由root运行。 一切都能正常工作(npm install由root运行时往往会失败,但这是一个完整的话题),此后,当我尝试与非root用户一起使用git存储库时,就会出现问题。是由root编写的,所以现在我不能使用它了(权限被拒绝)。 因此,我想递归地将chown其退回,但似乎没有任何东西可以真正在所有小git文件上使用。我尝试了-R标志和./**/*路径。 我的猜测是,这些技术都不属于点目录。
8 linux  chown 

1
如何添加其他步骤登录?
我想要实现的是一个交互式程序,该程序可以在向用户询问密码之前或之后运行,但是除非成功退出,否则不会处理对计算机的访问。为了使它更易于理解,下面是一个示例: 我想通过首先输入用户名,然后输入密码,然后正确回答一个简单的随机生成的数学问题来访问计算机。 为此,我使用以下系统身份验证文件: auth required pam_unix.so try_first_pass nullok nodelay auth optional pam_faildelay.so delay=600000 auth optional pam_exec.so stdout /home/math auth optional pam_permit.so auth required pam_env.so 问题在于,名为math的程序无法处理来自用户的输入,因为它会自动从PAM读取EOF,这实际上使它无用。我还尝试了以下可疑行的变体,在这种情况下,它会读取密码,这也不是我想要的: auth optional pam_exec.so stdout expose_authtok /home/math

1
没有root特权的gnome如何重启?
我正在阅读《Linux内核开发》这本书,在第5章“系统调用实现”第77页中说 例如,capable(CAP_SYS_NICE)检查调用方是否具有修改其他进程的精确值的能力。默认情况下,超级用户拥有所有功能,而非超级用户则不拥有。例如,这是reboot()系统调用。请注意,第一步是如何确保调用过程具有CAP_SYS_REBOOT。如果删除了一条条件语句,则任何进程都可以重新引导系统。 但是,在我的Debian Sid中,我可以使用gnome或通过执行/ sbin / reboot来重启机器,而无需sudo或su。这怎么可能? 也许与systemctl? ls -l /sbin/reboot lrwxrwxrwx 1 root root 14 Jun 28 04:23 /sbin/reboot -&gt; /bin/systemctl 编辑:我的用户组 [damian@xvz:~]$ groups damian sudo wireshark bumblebee 编辑2:systemctl权限 [damian@xvz:~]$ ls -l /bin/systemctl -rwxr-xr-x 1 root root 626640 Jun 28 04:23 /bin/systemctl

4
在CentOS上安装MongoDB时出现Yum错误?
我正在使用Centos 6.6(x86_64),试图安装最稳定的mongodb版本。但我被这个错误困住了(可能会重复出现,但以前的答案对我都不起作用) [root@localhost home]# sudo yum install -y mongodb-org Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from cached hostfile * base: ftp.iitm.ac.in * extras: ftp.iitm.ac.in * updates: centos.01link.hk http://repo.mongodb.org/yum/redhat/%24releaserver/mongodb-org/3.0/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found" Trying other …
8 linux  centos  yum  mongodb 

2
sudo rm -rf在root拥有的空目录上返回“无法删除目录”
我的Debian系统上有一个目录。目录是: root@debian:/3/20150626# stat 00 File: `00' Size: 6 Blocks: 0 IO Block: 4096 directory Device: fe00h/65024d Inode: 4392587948 Links: 3 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2015-06-25 20:00:00.086150791 -0400 Modify: 2015-07-07 12:39:04.174903234 -0400 Change: 2015-07-07 12:39:04.174903234 -0400 Birth: - 目录为空: root@debian:/3/20150626# ls -al 00 total …
8 linux  directory  rm 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.