Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答


1
磁盘(在USB机柜中)即使没有安装也不断唤醒
设定 我有USB机箱(Buffalo DriveStation Quad),其中包含连接到nas服务器(ubuntu服务器14.04)的四个驱动器。机箱已配置为JBOD模式,因此我将看到Linux中的所有磁盘。 其中两个磁盘(sdb和sdc)的软件RAID配置为/dev/md0(raid1)。并以ext4文件系统/dev/md0作为单个分区(/mnt/part1)挂载而没有日志记录。 其他两个磁盘(sdd和sde)都将LVM设置为一个卷组,从那里我已经安装了两个逻辑分区。其中之一是整个卷组容量(/mnt/part2)的90%,另一个是10%(/mnt/part3)的容量。两者都是没有日志的ext4。 APM问题 我的问题始于默认的APM模式,因为我注意到硬盘驱动器的磁头每隔几分钟就会非常激进地停下来。经过一段时间的研究,我最终使用了hdparm -B198 /dev/sd[bcde]。这似乎可以实现一定程度的节能,但实际上并不需要做任何头部停车操作。 有睡吗 我对当前的情况感到满意,但是我仍然希望驱动器在没有活动的情况下进入睡眠状态。尤其是sdb和sdc(/mnt/part1)在95%的时间内实际上没有任何活动。无论我尝试了什么,问题似乎都在于驱动器的睡眠时间不会超过一两分钟。 卸载所有分区并发布hdparm -y /dev/sd[bcde]将使驱动器进入睡眠模式,但仅持续几分钟。之后,他们都会一一唤醒。我试图通过启用block_dump(echo 1 > /proc/sys/vm/block_dump)来调试问题,但是看不到对磁盘的任何访问。 我还尝试通过禁用APM hdparm -B255 /dev/sd[bcde],并在此之后命令他们进入睡眠状态,但是还是一样。几分钟后,驱动器仍会唤醒。 我没有mdadm在守护程序模式下运行(每天只检查一次),也没有其他东西可以探测驱动器了。那么,接下来有什么想法呢?Buffalo USB机箱是否很笨拙(这是自己造成的)? 更新#1 我花了一些时间才能使磁盘在发行后唤醒hdparm -y /dev/sd[bc]。以下时间戳说明了这种模式: 00:00 hdparm -y /dev/sd[bc] 00:40 disks start to wake up 00:59 disks fully awake 01:00 hdparm -y /dev/sd[bc] 03:40 disks start to …

3
在非root用户帐户下运行守护程序是否是一种好习惯?
我已经开发了一个使用NTP更改网络时间,同步两台计算机的应用程序。它运行为root,因为在Linux上仅允许后者更改时间和日期(我想)。 现在,我想以用户身份运行它。但是,我需要获取时间。 在非root用户帐户下运行守护程序是否是一种好习惯? 我应该为我的应用程序提供诸如以下的功能CAP_SYS_TIME吗? 它不会引入安全漏洞吗? 有没有更好的办法?

3
在OS X上〜的意外Bash完成
我按~TabTab了bash命令提示符,得到了意外的完成情况。 首先,它看起来像/Users目录中的所有人一样,还有更多。 然后,我认为它正在对带有“ home”目录的人们进行反向查找/etc/password,或者也许是/var/empty-这似乎是正确的。 我很好奇是什么真正回事,为什么这个作品它。


2
Fash中的Flock和exec安全吗?
我见过的“标准”锁定代码片段类似于... ( flock -n 200 || exit 1; # do stuff ) 200>program.lock exec在这一点上使用是否安全(测试似乎如此)?子进程会保留锁吗? ( flock -n 200 || exit 1; exec /usr/bin/python vendors-notcoolstuff.py ) 200>program.lock 我隐约记得执行进程保留了打开的文件描述符,并且由于flock使用文件描述符,它应该可以工作。但是我找不到任何可以使之明确和明确的文档。 作为记录,这特定于Linux。
13 bash  lock 

4
为什么python被删除后仍然可以正常工作?
在Debian 8 jessie上,我删除了python: perry@perry:~$ sudo apt-get remove python Reading package lists... Done Building dependency tree Reading state information... Done Package 'python2.7' is not installed, so not removed 0 upgraded, 0 newly installed, 0 to remove and 35 not upgraded. 但是我仍然可以从终端启动python。 perry@perry:~$ python Python 2.7.9 (default, Apr 29 2015, 18:34:06) [GCC …
13 debian  apt  python 

4
删除目录时出现“ ls”错误
我有两个弹壳。第一个位于目录A中。第二个删除目录A,然后重新创建它。当我回到第一个shell并输入时ls,输出为: ls: cannot open directory .: Stale file handle 为什么?我认为第一个外壳程序(在不存在的目录中保持打开状态的外壳程序)将在等待下一个命令时“冻结”,并且不会“意识到”该目录已被删除并重新创建。除了字符串以外,shell是否对它的当前工作目录保留“更深”的引用$PWD?

2
为什么触摸创建新文件?
我知道该touch命令用于更新文件的上次修改日期。如果请求的文件在文件系统上不存在,它也可用于创建新文件。 由于touch(顾名思义),应该只更新上次修改日期,为什么还要尝试创建一个新文件? 仅仅是用触控代码编写的支票,还是导致文件创建的其他方式?
13 files  touch 

1
复制文件并附加时间戳
我的脚本有两个问题,该脚本复制文件并为该名称添加时间戳。 cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%T") 上面添加了Test2作为文件名,但我希望它保留原始源文件的文件名(在本示例中为)Test。 cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%r") 另一个问题是当我将%r时间戳记代码添加为时间戳代码时,出现错误,指出目标“ PM”不是目录。我正在尝试将时间戳记为12小时制。


3
如果在移动文件时被中断,文件系统会变得不一致吗?
我在同一分区(EXT2)上有两个文件夹如果我mv folder1/file folder2发生某些中断(例如电源故障),文件系统是否可能会最终变得不一致? mv操作不是原子的吗? 更新: 到目前为止,在IRC上,我有以下观点: 它是原子的,因此不会发生不一致 首先,您将目录条目复制到新目录中,然后擦除上一个目录中的条目,因此可能会有两次引用文件的不一致,但是引用计数为1 它首先擦除指针,然后再复制指针,因此不一致之处在于该文件的引用为0 有人可以澄清吗?

4
如何使用sed操纵连续流输出?
我正在为非技术性观众准备一个演讲。我有一个在bash中运行的程序,该程序输出连续的值流,其中一些很重要。我想突出显示重要结果,以便观众了解他们的频率。问题是我无法sed在正在运行的流上进行操作。如果将结果放入文件中,效果很好,如下所示: cat output.txt | sed "s/some text/some text bolded/" 但是,如果我在运行的输出上尝试相同的操作,如下所示: command | sed "s/some text/some text bolded/" sed什么也没做。有什么想法吗? 正如兰伯特(Lambert)很有帮助地指出的那样,我的说法sed是无所适从。发生的事情是,即使程序通过管道输出,程序也会照常输出到stdout(我很确定它没有写到stderr)sed。 问题似乎是该命令调用了第二个程序,然后将其输出到stdout。第一个程序打印了几行;这些我可以编辑。然后有第二个程序打印的值流;这些我无法编​​辑。 Perl和awk方法也不起作用。

1
D-Bus身份验证和授权
我正在尝试设置对D-Bus的远程访问,但我不了解身份验证和授权的工作方式(不)。 我有一台D-Bus服务器在抽象套接字上侦听。 $ echo $DBUS_SESSION_BUS_ADDRESS unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 我跑去dbus-monitor看发生了什么。我的测试用例是notify-send hello,当从本地计算机执行时可以工作。 从同一台计算机上的另一个帐户,我无法连接到该总线。 otheraccount$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 dbus-monitor Failed to open connection to session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network …

1
如何解决“跳过不兼容的/usr/lib/libc.a”
当我尝试在64位Fedora 16(Verne)上构建嵌入式Linux目标时,出现以下错误: make[3]: Entering directory `/export/home/git/minerva-5.x/third_party/multifiles' mips-linux-gnu-gcc -EL -O -D_GNU_SOURCE -Wall -isystem /export/home/git/minerva-5.x/cs_rootfs_1.2.15/cross_rootfs/include -c -o md5.o md5.c mips-linux-gnu-gcc -EL -O -D_GNU_SOURCE -Wall -isystem /export/home/git/minerva-5.x/cs_rootfs_1.2.15/cross_rootfs/include -c -o bitmapfs.o bitmapfs.c mips-linux-gnu-gcc -EL -O -D_GNU_SOURCE -Wall -isystem /export/home/git/minerva-5.x/cs_rootfs_1.2.15/cross_rootfs/include -c -o mfcln.o mfcln.c mips-linux-gnu-gcc -EL -Wl,-rpath /export/home/git/minerva-5.x/cs_rootfs_1.2.15/cross_rootfs/lib -L/export/home/git/minerva-5.x/cs_rootfs_1.2.15/cross_rootfs/lib -o mfcln md5.o bitmapfs.o mfcln.o mulfiles.h …
13 fedora  make  glibc 

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.