我必须禁用某些事件以避免在我的台式机中挂起后立即唤醒,并且我通过反复试验来实现(效果很好,所以这不是问题)。但我想知道......例如在我的笔记本电脑中,我有一个很长的列表/proc/acpi/wakeup
:
[...]
RP03 S4 *disabled
PXSX S4 *disabled
RP04 S4 *disabled pci:0000:00:1c.3
PXSX S4 *enabled pci:0000:03:00.0
RP06 S4 *disabled
[...]
Run Code Online (Sandbox Code Playgroud)
我四处搜索,找不到解释第一列中具有 4 个字母代码含义的列表的地方。我想象在它们之后带有设备名称的事件是由该设备链接/生成的,但我对其余的大部分都不知所措......减去疯狂的猜测。
例如,我怎么知道事件RP06
是什么?有没有清单?或者该代码是特定于供应商的?
我有一个三星笔记本电脑(Chronos的S7)与总线一个SATA硬盘ata:1
,它被检测为/dev/sda
,一个8G SSD上ata:2
,/dev/sdb
和上SATA接口的其余各种其他装置。
问题是SSD盘是
现在这个磁盘:
/dev/sdb
失败而无法挂起。请注意,我可以忍受启动时的延迟——让我担心的是恢复/挂起的事情。
所以问题是:我可以告诉内核避免在 ata:2 上探测设备吗?
在较旧的内核 (<3.0) 中,当我仍然能够深入挖掘源代码时,有一个样式的命令行参数hdb=ignore
可以解决问题。
我已经尝试了下面提出的所有技巧udev
和libata:force
内核参数,但无济于事。具体来说,以下不起作用:
添加到以下/etc/udev/rules.d/
文件之一(在早期执行中00-ignoredisk.rules
或晚期执行99-ignoredisk.rules
或在两个地方)
SUBSYSTEMS=="scsi", DRIVERS=="sd", ATTRS{rev}=="SSD ", ATTRS{model}=="SanDisk iSSD P4 ", ENV{UDISKS_IGNORE}="1"
Run Code Online (Sandbox Code Playgroud)
也不
KERNEL=="sdb", ENV{UDISKS_IGNORE}="1"
Run Code Online (Sandbox Code Playgroud)
也没有很多中间解决方案——这使得启动后无法访问磁盘,但它在启动时被探测,并在挂起时仍然检查——导致挂起失败。
编辑系统文件/lib/udev/rules.d/60-persistent-storage.rules
(和udisks
, udisks2
)改变
KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md", GOTO="persistent_storage_end"
Run Code Online (Sandbox Code Playgroud)
到
KERNEL=="ram*|loop*|fd*|nbd*|gnbd*|dm-|md|sdb*", GOTO="persistent_storage_end"
Run Code Online (Sandbox Code Playgroud)
同样,这也有一些效果,从用户空间屏蔽了磁盘,但内核仍然可以看到磁盘。
使用参数的所有可能组合(好吧,很多)引导libata:force
(例如在这里找到)以禁用 DMA、降低速度或任何有关故障磁盘的问题 --- 不起作用。使用了该参数,但磁盘仍被探测并失败。
完整 …
由于标准vino 服务器缺乏安全性,我改用x11vnc在我的 linux(使用 Xubuntu 14.04)机器和 Windows 端的SSVNC。
使用 vino,从 windows 剪切和粘贴到 Linux 和 windows,在两个方向上,是 flaky(1) 但是当它工作时,它适用于每个程序;我可以毫无问题地使用vim
寄存器"+
。我跑(2)
autocutsel -fork
Run Code Online (Sandbox Code Playgroud)
通常这样“中键”和 ctrl-c/v 选择是相同的。
现在我使用 x11vnc(用 : 调用x11vnc -forever -repeat -safer -usepw -ssl -autoport 6000
)来建立安全的加密连接,出现了一个问题:
我可以在 Windows 上复制并粘贴到远程 linux 终端、libreoffice 等,没有任何问题,双向。
在vim
, 或gvim
, 任何试图粘贴"+p
或"*p
说E353: Nothing in register *
再次在vim
or 中gvim
,相反的方式确实有效:如果"+yy
我可以将内容粘贴到 Windows 端。
任何人都知道这个问题?奇怪的是粘贴在我检查过的任何地方都有效,但在vim …
回答这个问题,我发现行为之间一个非常有趣的(和微妙的)差别bash
和zsh
:
在bash
:
romano@RRyS:~$ pwd
/home/romano
romano@RRyS:~$ alias x="cd /bin && ./echo A >/dev/null &"
romano@RRyS:~$ x
[1] 16611
romano@RRyS:~$ pwd
/home/romano
Run Code Online (Sandbox Code Playgroud)
如您所见,alias 的执行x
是在子shell 中执行的,因此当前目录不会更改。
不在zsh
:
[romano:~] % pwd
/home/romano
[romano:~] % alias x="cd /bin && ./echo A >/dev/null &"
[romano:~] % x
[1] 16744
[1] + 16744 done ./echo A >/dev/null
1& [romano:/bin] % pwd
/bin
[romano:/bin] %
Run Code Online (Sandbox Code Playgroud)
此处目录已更改。
似乎&
inbash
的优先级与 in 不同zsh
--- …
在我开始编写(可能很简单)脚本之前,是否有一个命令可以执行以下操作:
[:~/software/scripts] % ls -ld / /usr /usr/bin /usr/bin/tee
drwxr-xr-x 21 root root 4096 Mar 31 08:48 /
drwxr-xr-x 11 root root 4096 Jan 30 09:48 /usr
drwxr-xr-x 2 root root 73728 Apr 14 07:54 /usr/bin
-rwxr-xr-x 1 root root 26308 Jan 16 2013 /usr/bin/tee
Run Code Online (Sandbox Code Playgroud)
无需手动输入所有部分路径?这个想法是能够说
ls --this-new-flag /usr/bin/tee
Run Code Online (Sandbox Code Playgroud)
或者
command -l /usr/bin/tee
Run Code Online (Sandbox Code Playgroud)
并具有上面的输出 --- 显示了通向最终路径的所有部分路径的详细列表。可以输出/ /usr /usr/bin /usr/bin/tee
给定的shell 扩展技巧也可以/usr/bin/tee
。
我已经映射了我的箭头键以在可视线模式下移动,将hjkl
键留给正常的逻辑线移动:
" Visual movement with the arrows and End-Home
nnoremap <Down> gj
nnoremap <Up> gk
vnoremap <Down> gj
vnoremap <Up> gk
inoremap <Down> <C-o>gj
inoremap <Up> <C-o>gk
inoremap <Home> <C-o>g<Home>
inoremap <End> <C-o>g<End>
Run Code Online (Sandbox Code Playgroud)
这有效,但对于一个小问题。我的状态行中有一些代码可以在输入模式和正常模式之间更改颜色,如下所示:
if version >= 700
highlight statusLine cterm=bold ctermfg=black ctermbg=red
au InsertLeave * highlight StatusLine cterm=bold ctermfg=black ctermbg=red gui=bold guifg=black guibg=red
au InsertEnter * highlight StatusLine cterm=bold ctermfg=black ctermbg=green gui=bold guifg=black guibg=green
endif
Run Code Online (Sandbox Code Playgroud)
...我现在注意到(在一台比我家里的机器慢的机器上)每次我按下一个箭头时,<ctrl>o
(至少,我认为)的临时模式开关会使状态行快速闪烁红色然后又绿了。
是否可以重新定义键以避免临时跳转到正常模式?
我已正确安装fail2ban
在我的机器上,激活了ssh
,ssh-dos
和的规则recidive
;一切正常。
最近,我看到越来越多的来自不同主机的重复攻击模式形成相同的网络,通过在禁止后切换 IP 来规避“recidive”规则:
2015-01-25 11:12:11,976 fail2ban.actions: WARNING [ssh] Ban XXX.41.124.29
2015-01-25 11:12:13,165 fail2ban.actions: WARNING [ssh] Ban XXX.41.124.42
2015-01-25 11:12:16,297 fail2ban.actions: WARNING [ssh] Ban XXX.41.124.28
2015-01-25 11:12:20,446 fail2ban.actions: WARNING [ssh] Ban XXX.41.124.104
Run Code Online (Sandbox Code Playgroud)
我想检测它并制定一个“recidive24”规则来阻止所有这些禁止整个/24
块的攻击。
我在debian 错误档案中找到了一个关于 fail2ban的建议,我已经应用了它,但是:
如果我/24
在ssh
监狱被触发时应用完全禁令,我会遇到一个问题,我的同一网络上的某个人很容易通过从一个 IP 进行攻击来阻止我;
该recidive
监狱将是完美的,但它不是由风暴改变IP地址触发...
所以我想更改recidive
过滤器规范,以便它只查看 IP 的前三个字节,但我在这里不知所措......执行禁令的正则表达式是 (from /etc/fail2ban/recidive.conf
)
# The name of the jail that this filter is used for. In jail.conf, …
Run Code Online (Sandbox Code Playgroud)