我正在使用一个系统,我们希望允许用户根据需要随意调整日期和时间,并且可以随意重新启动。这很好,除了一件事:如果向后跳的时间很长,重新启动时会出现以下错误:
Checking filesystems
IMAGE2: Superblock last mount time (Tue Mar 1 17:32:48 2011,
now = Thu Feb 24 17:34:29 2011) is in the future.
IMAGE2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Run Code Online (Sandbox Code Playgroud)
...然后引导挂起等待用户控制台输入,即使获得控制台访问权限,也需要 root 密码才能继续。
这显然不太理想。有没有办法跳过检查或强制检查在重新启动时自动发生?
谷歌只提供了需要手动运行 fsck 的帮助,如果/当它被击中时,这不是我所追求的。设置时间后手动运行 fsck 不起作用,因为此时文件系统仍处于挂载状态,并且完全禁用 fsck 不太理想。
我正在使用红帽 6。
更新:我目前使用的解决方案是破解 fstab 以禁用重新启动时的 fsck 检查。我曾尝试使用 …
我正在运行以下命令,并监视另一个系统上的输出文件:
ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n >>/tmp/count; done'
Run Code Online (Sandbox Code Playgroud)
如果我使用^C或仅通过终止我登录的终端来终止ssh 命令,我希望远程命令也终止。但是,这不会发生:/tmp/count无论如何都会获取所有数字 1-5,并ps -ejH显示 shell 及其sleep子项继续运行。
这是预期的行为吗,是否在任何地方都有记录?我可以禁用它吗?通过阅读,我希望必须使用 nohup 显式启用这种行为,而不是让它成为默认值。
我查看了 ssh 和 sshd 的手册页,但没有发现任何明显的内容,Google 向我指出了打开此行为的说明,而不是关闭它的说明。
我正在运行 Red Hat Enterprise Linux 6.2,两个系统上都有 root 登录名和 bash shell。
我不知何故丢失了我的id_rsa.pub文件。我还有我的id_rsa档案。如何从私钥恢复公钥?
(这个问题是在ssh-copy-id报告“错误:未找到身份”而ssh-keygen报告“/root/.ssh/id_rsa已经存在”之后出现的。ls ~/.ssh指出问题是有id_rsa但没有id_rsa.pub。我找到了解决方案,但它被埋在了底部Ubuntu 支持论坛上的一篇长篇文章。)
最新版本的 ksh 已过时使用块-eq内[[ ]],(( ))而更喜欢使用。为什么是这样?我找不到任何关于(( ))over[[ ]]任何地方优势的文档,而且我发现这种语法更加明显。
例如:
#!/bin/ksh
var=1
if [[ $var -eq 1 ]]
then
echo ALPHA
fi
Run Code Online (Sandbox Code Playgroud)
给
[adam@hendrix test]$ ksh -n test.sh
test.sh: warning: line 3: -eq within [[...]] obsolete, use ((...))
Run Code Online (Sandbox Code Playgroud) 我刚刚遇到了<<命令,像这样使用:
cat > outfile.txt <<EOF
Multi-line content
that will be written to outfile.txt
EOF
Run Code Online (Sandbox Code Playgroud)
现在,我不知道它叫什么,但我很想知道它的名字,主要是这样我可以去搜索并了解更多关于它的语法。可悲的是,谷歌搜索“<<”是行不通的。
man 5 shadow 给出每行中第三个字段的以下描述:
上次更改密码的日期,表示为自 1970 年 1 月 1 日以来的天数。
0 有一个特殊的含义,就是用户下次登录系统时需要修改密码。
空字段表示禁用密码时效功能。
这是指 UTC 时间还是当地时区?特别是,如果我想使用类似的东西来计算可比较的数字$(( $(date +%s) / 86400 )),我是否需要传递date该-u选项?
在 Red Hat Enterprise Linux 6.4 系统上使用 GNU Screen 4.00.03 时,我看到一些有点奇怪的行为。
如果我在没有 Screen 的情况下连接,查看日志我可以看到每行都以 CRLF ( 0x0D 0x0A)终止,完全符合预期。
如果我连接并运行 Screen,则具有两个或更多字符的行会按预期以 CRLF 终止。没有打印字符的行(例如,运行一个bare echo)仅以LF ( 0x0A)终止,最奇怪的是,具有单个打印字符的行(例如echo x)以BSLF ( 0x08 0x0A)终止。
我在 PuTTY 上看到了这一点,上面的日志来自 PuTTY 日志。我也在使用 Pexpect 的自动化 Python 框架中看到了这一点,所以我不会为此责怪 PuTTY。
这是怎么回事?我该如何阻止?
已解决:有关详细信息,请参阅问题末尾的“但是”。
我已经设法将我的登录登录到 Unix 机器上。我没有一个简单的方法联系管理员,所以我想自己解决这个问题。我没有 root 访问权限(那太容易了)。
根据标题,我设法通过垃圾邮件标准输出的应用程序创建了一个大文件,我现在无法删除它。rm -f不起作用,也不行cat /dev/null >| $file,也不行truncate -s 0 $file。对于我尝试过的一切,错误类似于以下内容。
tr08[~]$ cat /dev/null >| wordlist.txt
-bash: wordlist.txt: Disk quota exceeded
Run Code Online (Sandbox Code Playgroud)
从输出quota是无益的:
tr08[~]$ quota -v
Disk quotas for user meand (uid 8650):
Filesystem blocks quota limit grace files quota limit grace
tau:/uspac/mc10/m10mr
0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
我不知道下一步该怎么做。谷歌只给了我truncate和cat \dev\null,所以任何建议或建议将不胜感激。
评论中要求的输出:
tr08[~]$ uname -a
Linux tr08.ecs 2.6.30.10-106a.fc11.x86_64 #1 SMP Tue Sep 21 11:11:58 BST …Run Code Online (Sandbox Code Playgroud) 昨晚,在晚上放弃我的电脑之前,我开始了一堆编译器工作,以便他们在早上准备好,使用make -f alpha.mak &>alpha.out &. 当我回来并按回车时,我看到了以下输出:
[1] Done make -f alpha.mak &>alpha.out
[2]- Done make -f beta.mak &>beta.out
[3]+ Done make -f gamma.mak &>gamma.out
Run Code Online (Sandbox Code Playgroud)
我的问题:该输出中的+和-符号是什么意思?
我在 RedHat 6 上使用 bash。
ssh ×3
date ×2
rhel ×2
shell ×2
bash ×1
boot ×1
disk-usage ×1
fsck ×1
gnu-screen ×1
job-control ×1
ksh ×1
openssh ×1
password ×1
pipe ×1
quota ×1
scripting ×1
shell-script ×1
sshd ×1
time ×1
timezone ×1