Questions tagged «linux»

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


4
交换tmpfs(显然是个坏主意,但是可能吗?)
这个问题源自同事之间的一个玩笑,内容是关于通过将交换文件移动到tmpfs来提高性能。显然,即使有可能,也不是一个好主意。我想知道的是,能做到吗? 我目前在Ubuntu 14.04上,但是我可以想象大多数Linux / Unix机器的过程都相似。这是我在做什么: > mkdir /mnt/tmp > mount -t tmpfs -o size=10m tmpfs /mnt/tmp > dd if=/dev/zero of=/mnt/tmp/swapfile bs=1024 count=10240 > chmod 600 /mnt/tmp/swapfile > mkswap /mnt/tmp/swapfile # So far, so good! > swapon /mnt/tmp/swapfile swapon: /mnt/tmp/swapfile: swapon failed: Invalid argument 因此,在linux或unix(我对任何解决方案都感兴趣)上,您能以某种方式在驻留在ram中的文件/分区上设置交换吗?有办法解决Invalid argument我遇到的错误吗? 再次强调一下,我不希望这是解决实际问题的解决方案。我想这只是一个有趣的实验。
11 linux  swap  tmpfs 

1
为tcpdump捕获创建多播联接
我想编写一个Linux Shell脚本来捕获特定的多播流量。具体来说,我想创建一个pcap文件,其中包含一个特定多播组/端口的所有流量。 这是我用来查看流量的命令行: tcpdump -nnXs 0 -i eth1 udp port 22001 and dst 233.54.12.234 只要我已经建立了对该组的多播订阅,就可以正常工作。例如,如果我在另一个控制台中运行此命令: mdump 233.54.12.234 22001 10.13.252.51 tcpdump将看到数据包。如果mdump没有运行,tcpdump什么也看不到。 在开始捕获之前,是否有标准的linux-y方法来建立这些多播联接?我可以mdump用来建立这些联接,但这似乎很浪费,因为mdump它将处理组中的所有数据,但是我只是将其丢弃。 请注意,由于我的特定环境,我们不建议将接口置于混杂模式。实际上,它可能被禁止。

2
了解网络摄像头的Linux设备驱动程序
据我所知,设备驱动程序是SW的一部分,能够与连接到计算机的特定类型的设备进行通信。 对于USB网络摄像头,负责的驱动程序是UVC,它支持任何兼容UVC的设备。这意味着可以使OS或其他计算机程序访问硬件功能,而无需知道所使用硬件的确切细节。 因此,我通过运行以下命令安装了UVC Linux设备驱动程序: opkg install kernel-module-uvcvideo 网络摄像头已被Linux内核识别:dev/video0。但是,由于缺少V4L2 API,我仍然无法使用FFmpeg执行视频流。我通过配置内核安装了V4L2。 我的查询是: UVC驱动程序和V4L2如何链接在一起? V4L2 API的目的是什么? 如果我没有首先安装UVC,它将与V4L2一起安装吗? LinuxTV是指:uvcvideo驱动程序实现仅遵守V4L2 API。这意味着UVC是V4L2 API的一部分吗?
11 linux  drivers  camera  v4l 

5
移动驻留在单个目录中的大量文件的最有效方法是什么?
CentOS 5.x 如果这是一个重复的问题,我深表歉意。我见过很多类似的问题(关于删除文件),但情况并不完全相同。 我有一个包含成千上万个文件的目录(可能超过一百万个),作为对一个不同问题的短期修复,我需要将这些文件移动到另一个位置。 为了讨论的目的,假设这些文件最初位于其中/home/foo/bulk/,我想将它们移至/home/foo2/bulk2/ 如果尝试mv /home/foo/bulk/* /home/foo2/bulk2/ ,会出现“参数过多”错误。 Google先生告诉我,批量删除文件的另一种方法是运行find。就像是: find . -name "*.pdf" -maxdepth 1 -print0 | xargs -0 rm 如果我要删除内容,那很好,但是在这种情况下,我想移动文件...如果我输入类似find . -name "*" -maxdepth 1 -print0 | xargs -0 mv /home/foo2/bulk2/bash的内容,则抱怨该文件不是目录。 在此处将批量文件从一个目录移动到另一个目录的最佳命令是什么?
11 linux  bash  shell  find  rename 

1
OOM Killer-被杀死的MySQL服务器
在我们的一名MySQL主服务器上,OOM Killer被调用并杀死了导致严重中断的MySQL服务器。以下是内核日志: [2006013.230723] mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0 [2006013.230733] Pid: 1319, comm: mysqld Tainted: P 2.6.32-5-amd64 #1 [2006013.230735] Call Trace: [2006013.230744] [<ffffffff810b6708>] ? oom_kill_process+0x7f/0x23f [2006013.230750] [<ffffffff8106bde2>] ? timekeeping_get_ns+0xe/0x2e [2006013.230754] [<ffffffff810b6c2c>] ? __out_of_memory+0x12a/0x141 [2006013.230757] [<ffffffff810b6d83>] ? out_of_memory+0x140/0x172 [2006013.230762] [<ffffffff810baae8>] ? __alloc_pages_nodemask+0x4ec/0x5fc [2006013.230768] [<ffffffff812fca02>] ? io_schedule+0x93/0xb7 [2006013.230773] [<ffffffff810bc051>] ? __do_page_cache_readahead+0x9b/0x1b4 [2006013.230778] …

1
“ cd”进入/ sys / kernel / debug / tracing导致权限更改
我今天遇到了一个非常奇怪的问题,对此我完全无能为力。 我管理的某些服务器由Nagios监控。最近,我看到一个磁盘使用情况探测失败,并显示以下错误: 磁盘严重-/ sys / kernel / debug / tracing无法访问:权限被拒绝 我想调查一下,我的第一个尝试是检查此目录权限,并将其与另一台服务器(运行良好的服务器)进行比较。这是我在工作服务器上运行的命令,您将看到我cd进入目录后,其权限便被更改: # Here we've got 555 for /sys/kernel/debug/tracing root@vps690079:/home/admin# cd /sys/kernel/debug root@vps690079:/sys/kernel/debug# ll total 0 drwx------ 30 root root 0 Jul 19 13:13 ./ drwxr-xr-x 13 root root 0 Jul 19 13:13 ../ … dr-xr-xr-x 3 root root 0 Jul …

2
当有足够的内存时,为什么我不能“交换”?
我最近注意到,即使我的系统上有很多内存: # free -m total used free shared buffers cached Mem: 15965 9680 6284 35 1754 2560 -/+ buffers/cache: 5365 10599 Swap: 2047 258 1789 我无法swapoff -a使用2G交换文件 -rw-r----- 1 root root 2.0G Feb 9 21:34 /2GB.swap 我已经通过更改了以下内核参数,sysctl但这应该是原因: vm.swappiness = 5 vm.vfs_cache_pressure = 200 任何原因: # swapoff -a swapoff: /2GB.swap: swapoff …
10 linux  memory  swap 

1
为什么FreeBSD丢失了w掩码,但Debian保留了它?
我试图了解FreeBSD ACL和Linux ACL在行为上的差异。特别是默认ACL的继承机制。 我在Debian 9.6和FreeBSD 12上都使用了以下命令: $ cat test_acl.sh #!/bin/sh set -xe mkdir storage setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage touch outside cd storage touch inside cd .. ls -ld outside storage storage/inside getfacl -d storage getfacl storage getfacl outside getfacl storage/inside umask 我从Debian 9.6获得以下输出: $ ./test_acl.sh + mkdir storage + …

1
Debian:无法删除/ sys /中的符号链接:不允许的操作
我在运行某些命令时并没有完全理解它们,而试图使屏幕亮度正常工作,现在我陷入了试图摆脱的“ / sys / class / backlight / asus_laptop”中令人讨厌的符号链接。 我努力了 sudo rm /sys/class/backlight/asus_laptop sudo rm '/sys/class/backlight/asus_laptop' su root rm /sys/class/backlight/asus_laptop sudo rm /sys/class/backlight/asus_laptop 进入目录并输入rm asus_laptop,更改所有权并使用Thunar尝试删除它。 我懂了 rm: cannot remove '/sys/class/backlight/asus_laptop': Operation not permitted 取消链接也是如此,rmdir不起作用,Thunar失败。 对此的权限为lrwxrwxrwx 如何删除?
10 linux  permissions  rm  sysfs 

2
为什么在现代Linux上,默认堆栈大小如此之大-8MB(在某些发行版中甚至为10MB)
例如,在OSX上,它甚至不到512k。 有没有建议的大小,请记住,该应用程序不使用递归并且不分配很多堆栈变量? 我知道这个问题太广泛了,它很大程度上取决于用法,但是我仍然想问,因为我想知道这背后是否存在一些隐藏的/内部的/系统的原因。 我想知道,因为我打算在我的应用程序中将堆栈大小更改为512 KiB-听起来仍然很大,但它比8MiB小得多-并会导致进程的虚拟内存显着减少,因为我有很多线程(I / O)。 我也知道这并没有真正的伤害,请在此处进行详细说明:pthreads的默认堆栈大小


3
如何在bash脚本中为unicode grep
if grep -q "�" out.txt then echo "working" else cat out.txt fi 基本上,如果文件“ out.txt”在文件中的任何位置都包含“ ...”,我希望它回显“工作”,并且如果文件“ out.txt”在文件中的任何位置均不包含“。”,那么我想它来猫out.txt 编辑:所以这就是我在做什么。我试图蛮力的openssl解密。 openssl enc成功返回0,否则返回非零。注意:您会得到误报,因为AES / CBC只能根据正确的填充来确定“解密是否有效”。因此,该文件将解密,但它不是正确的密码,因此其中会出现乱码。乱码中的常见字符是“。”。因此,如果输出包含“ ...”,我希望do循环继续进行。 这是我的git链接https://github.com/Raphaeangelo/OpenSSLCracker 这是脚本 while read line do openssl aes-256-cbc -d -a -in $1 -pass pass:$line -out out.txt 2>out.txt >/dev/null && printf "==================================================\n" if grep -q "�" out.txt then : …

2
如何使用linux find命令打印内容而不是文件名?
我有成千上万个这样的unl文件cbs_cdr_vou_20180624_603_126_239457.unl。我想使用以下命令从这些文件中打印所有行。但它只给我文件名。我不需要文件名,我只需要这些文件中的内容。 find -type f -name 'cbs_cdr_vou_20180615*.unl' > /home/fifa/cbs/test.txt 电流输出: ./cbs_cdr_vou_20180615_603_129_152023.unl ./cbs_cdr_vou_20180615_603_128_219001.unl ./cbs_cdr_vou_20180615_602_113_215712.unl ./cbs_cdr_vou_20180615_602_120_160466.unl ./cbs_cdr_vou_20180615_603_125_174428.unl ./cbs_cdr_vou_20180615_601_101_152369.unl ./cbs_cdr_vou_20180615_603_133_193306.unl 预期产量: 8801865252020|200200|20180613100325|; 8801837463298|200200|20180613111209|; 8801845136955|200200|20180613133708|; 8801845205889|200200|20180613141140|; 8801837612072|200200|20180613141525|; 8801877103875|200200|20180613183008|; 8801877167964|200200|20180613191607|; 8801845437651|200200|20180613200415|; 8801845437651|200200|20180613221625|; 8801839460670|200200|20180613235936|; 请注意,对于cat命令,我会收到错误消息-bash: /bin/logger: Argument list too long,这就是为什么要使用它find而不是catcommand的原因。
10 linux  find  cat 

4
Linux组织已安装程序文件的方式有什么好处?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 在Windows中,系统驱动器C:有一个目录program_files,每个程序在其下都有其自己的目录。 在Linux中,/usr/和下/usr/local/有/bin, /etc, /share, /src,等等。 因此,在Windows中,每个程序的所有文件都分组在同一目录中,而在Linux中,所有程序中的相同类型的文件都在同一目录中。 我觉得Windows组织已安装程序的方式比Linux更合乎逻辑,因此已安装程序更易于手动管理。 Linux组织已安装程序文件的方式有什么好处?谢谢。 当遇到如何在$ HOME中组织已安装的程序以供Shell在运行它们时搜索它们的问题时,我遇到这个问题?,我尝试以$HOMEWindows的方式组织程序,但是在指定程序的搜索路径时遇到了一些问题。

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.