概括:
me@client:~$ sudo route del default ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del default dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default netmask 128.0.0.0 gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default gw 0.0.0.0 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo …
Run Code Online (Sandbox Code Playgroud) 我正在设置一个带有“PermitRootLogin no”的云节点(仅可通过 ssh 访问,不推荐使用 GUI,运行 Debian 7)以确保安全。对于某些应用程序,我想将一些 root 拥有的配置文件从远程复制到本地(例如,设置本地客户端)。而且,为了可重复性,我想编写这个脚本(已经从格式错误的命令行中处理了几次)。考虑到“PermitRootLogin no”(并且没有物理访问权限),启用sudo
从脚本远程获取的最佳实践是什么(并且,是的,我知道我会输入密码 -完全非交互性会很好,但不是必需的) )?我尝试过的一些事情:
(1) scp
: 失败,因为我不知道scp
我想要sudo
远程。(AFAICS--我错过了什么吗?)
(2) 裸体rsync-path
:我试过了
me@local ~ $ rsync --rsync-path='sudo rsync' remote:/path/to/file ${HOME}/backups/cloud_9/path/to/file
X11 forwarding request failed on channel 0
sudo: no tty present and no askpass program specified
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
...
Run Code Online (Sandbox Code Playgroud)
可以启用非图形询问通行证吗?Casual DuckDuckGo -ing 没找到。Note rsync-path
will (IIRC) 与 'visiblepw' 一起工作,但不能裸露/没有。
(3) sudoers.d/visiblepw
: 找到 DDG
http://www.sudo.ws/pipermail/sudo-users/2009-August/004142.html …
Run Code Online (Sandbox Code Playgroud) 请注意version-specific
问题标题!这个问题不是,如何
这个问题更确切地说是如何
最近,我对我的一个 Debian 机器进行了一次“大更新”(即涉及大量软件包或内核等主要软件包,或两者兼而有之),但它没有“干净地”更新(即没有重大问题)。将来,当我对 Debian 机器应用错误更新时,我希望能够将(a)同一机器上设置的软件包(b)回滚到以前的版本。(之前没有进行图像备份,这很慢。)不幸的是我不知道该怎么做。我知道如何
感谢许多讨论如何做到这一点的网页,包括几个 SE。大多数(包括这个、这个和这个)都会或多或少地进行复杂的变化
dpkg --get-selections > ${PACKAGE_LIST_FILEPATH}
dpkg --set-selections < ${PACKAGE_LIST_FILEPATH}
可能是关于这个主题的最全面的(也是最脚本化的,我更喜欢的)SE 是这个:它是少数几个推荐备份存储库列表(使用cp -R /etc/apt/sources.list*
)和存储库密钥(使用apt-key exportall
)的 SE 之一,但它也使用dpkg
上面的方法。此 SE建议使用aptitude …
总结:我可以cryptsetup benchmark
对结果进行运行和排序,但在解释时寻求指导。例如,我应该更重视加密速度还是解密速度?密钥派生速度是否应该覆盖?我的用例应该如何影响我如何衡量/解释结果?
感谢指向文档的指针:我已经进行了网络搜索,但没有看到任何明确的外观。特别是,这似乎不是
cryptsetup
常见问题解答细节:
我准备在 2007 年左右的笔记本电脑上重新安装操作系统(因此大概没有处理器支持 AES),这次是使用 LUKS+LVM2。(这是我剩下的一个盒子Plain Old Partitions
。)我没有时间运行序列的几个循环[安装 LUKS+LVM2+OS,运行一个真正的磁盘基准测试,测量结果],尽管这显然会提供更多的经验指导。相反,我试图选择一个合理的(甚至是最佳的 :-) LUKS 密码规范字符串“cryptsetup benchmark
预先”使用,尽管我知道“无法直接预测真实的存储加密速度”[2]。
当此框运行时,sudo cryptsetup benchmark
它会输出(在调整以标记和分离问题并按速度降低排序后):
# key derivation:
PBKDF2-sha1 557753 iterations per second
PBKDF2-sha256 356173 iterations per second
PBKDF2-ripemd160 336082 iterations per second
PBKDF2-sha512 256000 iterations per second
PBKDF2-whirlpool 112219 iterations per second
# encryption:
# Algorithm | Key | Encryption
serpent-xts 512b 144.7 MiB/s
serpent-xts 256b 144.0 MiB/s
twofish-xts 256b …
Run Code Online (Sandbox Code Playgroud) 假设一个人正在将一个外部驱动器设置为“一次写入存档”:一个人打算重新格式化它,复制一些(希望)永远不会更新的文件,然后将其放在一边,直到我需要阅读某些内容(这可能是很长一段时间或永远不会)来自另一个Linux机器的存档。我还希望能够在存档中获得尽可能多的文件空间;即,我希望文件系统为其自身目的消耗尽可能少的可用空间。
特定问题 1:哪个文件系统更适合此用例:ext2 或 ext4 没有日志记录?
由于我以前从未做过后者(我通常用GParted做这种事情),为了确定:
具体问题 2:是安装无日志 ext4 的“方式”mke2fs -t ext4 -O ^has_journal /dev/whatever
吗?
一般问题 3:这个用例有更好的文件系统吗?还是完全不同的东西?
我在各种外部驱动器上保存了来自死盒(因此永远不会更新)上的旧项目的一堆文件。总大小(文件)~= 250 GB。这对于 DVD 来说太大了(即,需要太多——除非我遗漏了什么),而且我没有磁带驱动器。因此,我正在设置一个旧的 USB2 HFS 外部驱动器作为他们的存档。我更喜欢使用“真正的 Linux”文件系统,但也更喜欢一个文件系统
我计划使用 GParted 执行以下顺序:[删除旧分区,创建单个新分区,创建 ext2 文件系统,重新标记]。但是,我读到这里是
recent Linux kernels support a journal-less mode of ext4
which provides benefits not found with ext2
Run Code Online (Sandbox Code Playgroud)
并注意到以下文字 man mkfs.ext4
"mke2fs -t ext3 -O ^has_journal /dev/hdXX"
will create a filesystem that does not have a …
Run Code Online (Sandbox Code Playgroud) 概括:
~=
[type of file].[8-digit date]
。find /path/ -name 'file.nnnn*' -print | xargs -e fgrep -nH -e 'text I seek'
其中nnnn
== 4 位数字年份)find
像find /path/ -name 'file.201[89]*' -print | xargs ...
find
在 2019 年和 2020 年与find /path/ -name 'file.20{19,20}*' -print | xargs ...
ls
!是否有一种{简洁、优雅}的方式来告诉find
我想要什么,而无需进行后期find
清理(即我现在正在做的事情)à la
find /path/ -name 'file.*' -print | grep -e '\.2019\|\.2020' | xargs ...
Run Code Online (Sandbox Code Playgroud)
? FWIW,我更喜欢与xargs
.
细节: …
我想让一个特定的 bash 脚本在找不到命令时快速失败,同时在全局范围内保留通常友好的 command_not_found 行为。例如,如果我将以下内容保存到/tmp/foo.sh
...
# ----------------------------start foo.sh----------------------------
THIS_FP="$0"
THIS_FN="$(basename ${THIS_FP})"
THIS_DIR="$(dirname ${THIS_FP})"
function setup {
for CMD in \
'foo' \
; do
echo -e "\n$ ${THIS_FN}::${FUNCNAME[0]}::${CMD}"
eval "${CMD}"
done
} # end function setup
function teardown {
for CMD in \
"ls -alt ${THIS_DIR} | head" \
; do
echo -e "\n$ ${THIS_FN}::${FUNCNAME[0]}::${CMD}"
eval "${CMD}"
done
} # end function teardown
for CMD in \
'setup' \
'teardown' \
; do
echo -e "\n$ ${THIS_FN}::main loop::${CMD}" …
Run Code Online (Sandbox Code Playgroud) 在研究另一个问题时,我注意到(添加了注释)
\n\nme@it: ~ $ date ; sudo find / -maxdepth 1 -xdev -type d | grep -ve '/$' | sort\nThu Aug 31 14:58:25 MST 2017\n/bin\n/boot [*]\n/.config\n/dev\n/etc\n/home [*]\n/lib\n/lib64\n/lost+found\n/media\n/mnt\n/opt\n/proc\n/root\n/run\n/sbin\n/srv\n/sys\n/tmp\n/usr\n/var\n
Run Code Online (Sandbox Code Playgroud)\n\n不过我也知道
\n\nme@it: ~ $ date ; lsblk\nThu Aug 31 14:52:58 MST 2017\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nsda 8:0 0 465.8G 0 disk\n\xe2\x94\x9c\xe2\x94\x80sda1 8:1 0 16.6G 0 part\n\xe2\x94\x9c\xe2\x94\x80sda2 8:2 0 97.7G 0 part\n\xe2\x94\x9c\xe2\x94\x80sda3 8:3 0 500M 0 part /boot [*]\n\xe2\x94\x9c\xe2\x94\x80sda4 8:4 0 1K 0 part\n\xe2\x94\x94\xe2\x94\x80sda5 8:5 0 351G 0 part\n …
Run Code Online (Sandbox Code Playgroud)