Unix & Linux

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

5
快速压缩大量大文件
我每天产生约200 GB的日志数据,分布在约150个不同的日志文件中。 我有一个脚本将文件移动到临时位置,并在临时目录上执行tar-bz2。 将200 GB的日志压缩到大约12-15 GB后,我得到了很好的结果。 问题是压缩文件需要花费很多时间。该cron的工作上午2:30每天运行,并继续运行,直到5:00-6:00 PM。 有没有办法提高压缩速度并更快地完成工作?有任何想法吗? 不用担心其他所有过程,压缩发生的位置在NAS上,我可以在专用VM上运行将NAS挂载,然后从那里运行压缩脚本。 这是top的输出,以供参考: top - 15:53:50 up 1093 days, 6:36, 1 user, load average: 1.00, 1.05, 1.07 Tasks: 101 total, 3 running, 98 sleeping, 0 stopped, 0 zombie Cpu(s): 25.1%us, 0.7%sy, 0.0%ni, 74.1%id, 0.0%wa, 0.0%hi, 0.1%si, 0.1%st Mem: 8388608k total, 8334844k used, …

2
crond处理夏季时间+1小时变化吗?
上周末,我们不得不将时间从02:00更改为03:00。 问题:如果在02:30进行cronjob,会发生什么情况? crond是一个非常古老的调度解决方案,它可能应该处理它,但是不知道如何。
16 cron  clock  dst 

12
成对删除重复行?
我今天遇到了这个用例。乍一看似乎很简单,但是随便摆弄sort,uniq,sed并awk透露,这是平凡的。 如何删除所有 成对的重复行?换句话说,如果给定行的重复数为偶数,则将其全部删除;如果重复行数为奇数,请删除除一行以外的所有行。(可以假设输入是排序的。) 干净优雅的解决方案是可取的。 输入示例: a a a b b c c c c d d d d d e 输出示例: a d e

3
消耗100%的CPU
upowered消耗了将近100%的CPU。 目前,我在Lenovo Thinkpad E520以及运行Core i7和Asus Z170a主板的台式机上都受到此问题的影响。两者都运行Kubuntu 15.10。但是,我已经发现了好几年以来在多个不同发行版(从Fedora到Arch到Ubuntu)上有关此问题的报告。 我找到了这些错误报告,但是找不到任何解决方法或解决方案: FS#40444:[upower]上载0.99.0-2会消耗所有资源 https://bugs.archlinux.org/task/40444 错误#861642“ upowerd使用100%cpu直到杀死”:错误:upower软件包:Ubuntu https://bugs.launchpad.net/ubuntu/+source/upower/+bug/861642 错误#876279:“过度占用CPU资源”:错误:上层软件包:Ubuntu https://bugs.launchpad.net/ubuntu/+source/upower/+bug/876279

7
使用目录树/文件名时的紧凑bash提示
在具有Ubuntu 14.04和的系统中bash,我具有PS1以以下内容结尾的变量: \u@\h:\w\$ 因此提示显示为 user@machinename:/home/mydirectory$ 但是,有时,当前目录的名称很长,或者它位于内部名称很长的目录中,因此提示看起来像 user@machinename:/home/mydirectory1/second_directory_with_a_too_long_name/my_actual_directory_with_another_long_name$ 这将填充终端中的行,并且光标将移至另一行,这很烦人。 我想获得类似的东西 user@machinename:/home/mydirectory1/...another_long_name$ 有没有一种方法可以定义PS1变量来“包装”和“压缩”目录名称,以使其不超过一定数量的字符,从而获得较短的提示?

5
如何在远程计算机上并行运行脚本?
我可以将SSH放入具有64个内核的远程计算机中。可以说我需要在这台机器上并行运行640个Shell脚本。我该怎么做呢? 我可以看到将640个脚本分成10个脚本的64个组。然后,我将如何并行运行这些组中的每个组,即在每个可用核心中的每个上一组。 将脚本的形式 ./script_A & ./script_B & ./script_C & ... 哪里script_A对应第一组,script_B第二组等就足够了? 在一个内核上运行的一组内的脚本可以顺序运行,但是我希望这些组在所有内核上并行运行。

3
如何将U + xxxxx代码指定的表情转换为utf-8?
表情符号似乎是使用U + xxxxx的格式指定的, 其中每个x是一个十六进制数字。 例如,U + 1F615是“困惑的面孔” 的正式Unicode联盟代码code 由于我经常感到困惑,所以我对这个符号有很强的亲和力。 该U + 1F615表示是混淆我,因为我认为有可能为Unicode字符的唯一编码所需的8,16,24或32位,而5个十六进制数字需要5×4 = 20比特。 我发现这个符号似乎由bash中完全不同的十六进制字符串表示: $echo -n 😕 | hexdump 0000000 f0 9f 98 95 0000004 $echo -e "\xf0\x9f\x98\x95" 😕 $PS1=$'\xf0\x9f\x98\x95 >' 😕 > 我本来希望U + 1F615转换为\ x00 \ x01 \ xF6 \ x15之类的东西。 我看不到这两种编码之间的关系吗? 当我在正式的Unicode联盟列表中查找符号时,我希望能够直接使用该代码,而不必以这种乏味的方式手动将其转换。即 在某些网页上找到符号 将其复制到Web浏览器的剪贴板 将其粘贴到bash中以通过十六进制转储进行回显以发现REAL代码。 我可以使用此20位代码来确定32位代码是什么吗? …

2
为什么在bash管道上使用`yes'不会*导致无限循环?
根据其文档,bash会一直等到管道中的所有命令运行完毕,然后再继续 在返回值之前,shell等待管道中的所有命令终止。 那么,为什么命令yes | true立即完成?不应yes永远循环并导致管道永不返回吗? 还有一个子问题:根据POSIX规范,shell管道可以选择在最后一条命令完成之后返回,或者等待直到所有命令完成。从这个意义上说,普通的壳有不同的行为吗?是否有任何壳yes | true会永远循环?
16 bash  shell  pipe 

2
如何在Debian Jessie 8.2中为ssh设置动态消息(motd)?
我希望有一个动态的模式,但是我不知道该怎么做。 我试了一下,我发现,加入/etc/update-motd.d/00-header,10-sysinfo,90-footer,和符号链接到/etc/motd /var/run/motd.dynamic,/run/motd.dynamic,/run/motd或/var/run/motd。 我在这些行中/etc/pam.d/sshd: # Print the message of the day upon successful login. # This includes a dynamically generated part from /run/motd.dynamic # and a static (admin-editable) part from /etc/motd. session optional pam_motd.so motd=/run/motd.dynamic session optional pam_motd.so noupdate 我也对systemd感到困惑。 有没有办法做到这一点?有人可以举一个简单的例子吗?
16 debian  ssh  systemd  motd 

4
运行多个cron作业,其中一项作业需要很长时间
关于cron工作,我有以下一般性问题。 假设我的内容如下crontab: * 10 * * * * someScript.sh * 11 * * * * someScript2.sh 30 11 */2 * * someScript3.sh <-- Takes a long time let's say 36 hours. * 12 * * * someScript4.sh 在适当的时候运行剩余的工作足够聪明吗?例如,长脚本不需要终止吗? 另外,如果最初的长脚本仍在运行并且再次被cron调用,会发生什么? 谢谢!
16 cron 

1
可以将一个窗口从一个X屏幕移动到同一主机上的另一个屏幕吗?
我正在XFCE 4.12上运行,将3个监视器设置为同一台计算机上的两个X屏幕和两个视频卡。其中两个监视器使用nvidia twinview功能形成单个X屏幕,该屏幕是Xorg配置中Device0上的Screen0。第三个监视器用于第二个屏幕,即Xorg配置中Device1上的Screen1。我可以在Screen0的监视器之间拖动窗口。我也可以在Screen0和Screen1之间自由移动鼠标,甚至剪贴板数据也可以在两个X屏幕之间传送。 这两个X屏幕都充当具有各自视口的独立桌面。我喜欢这种方式,它对于自动使一侧“粘住”很有用。但是,如果我在一个X屏幕上启动程序,则无法通过简单地将其拖动到另一个X屏幕上的方式将其移动到另一个X屏幕上。如果要在另一个屏幕上运行该程序,则必须在该屏幕上重新启动它。 我的问题是,是否有办法使用某些命令或X窗口的其他功能将程序运行到另一个屏幕时将其移动。谢谢。 更新:我将开始悬赏这个问题,但我一直对此感到疑惑。为了获得赏金,您必须提供一些引证作为证明。
16 x11  xorg 

4
如何通过telnet到HTTP端口80?
在google中搜索后,我发现我们可以telnet将其网页服务器连接到其http端口并用于GET检索html页面。 例如: $ telnet web-server-name 80 但是我不明白这怎么可能? 我认为如果端口80用于http服务器,则端口80将仅侦听http请求。但是我怎么telnet去HTTP港口呢? 是不是telnet和HTTP两个不同的协议?


1
我可以用一个键打开Mutt中的下一条未读邮件吗?
有没有办法mutt用一个键打开下一条未读消息?我可以使用移至下一个未读next-new-then-unread,Tab默认情况下绑定。但是,如果当前邮箱中没有未读邮件,则必须使用next-unread-mailbox(默认情况下未绑定)。无论如何,这不是最佳选择,因为如果我有新消息,请退出mutt,然后mutt再次打开,这不会使我进入包含“新”消息的邮箱。(假定邮箱不再未读。) 另外,这两个选项都移至索引视图中的下一条消息,并且我必须手动在分页器视图中打开该消息(带有Enter)。有没有办法打开下一条未读邮件,无论它在哪个邮箱中? 我正在使用neomutt,因此发现的一种局部解决方法是使用侧边栏命令。 macro index,pager , '<sidebar-next-new><sidebar-open><enter>' 问题在于,这会自动(从侧边栏)打开下一个未读邮箱。因此,如果当前邮箱和另一个邮箱中有未读邮件,此命令将打开另一个邮箱而不是当前邮箱中的邮件。
16 mutt 

2
“ </ dev / null”是什么意思?
我了解&gt; /dev/null将事物重定向到/dev/null类似黑洞的行为。但是,我不明白这&lt; /dev/null意味着什么。我看到了一些这样写的脚本: nohup myprogram &gt; foo.out 2&gt; foo.err &lt; /dev/null &amp; 那么,&lt; /dev/null上面的代码是什么意思呢? 这是一个建议的例子
16 bash 

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.