AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-504798

Fravadona's questions

Martin Hope
Fravadona
Asked: 2025-03-20 06:03:17 +0800 CST

如何确定 Linux 计算机的安装时间?[重复]

  • 9
此问题这里已有答案:
如何查找 Linux 系统安装的时间? (18 个答案)
4 天前关闭。

有什么好方法可以知道 Linux 计算机的安装时间?

我能想到的任何解决方案都将基于stat -c %y,例如。

stat --format %y /etc/os-release /etc/skel
2022-04-06 12:00:18.402055811 +0200
2022-04-06 12:00:19.895055839 +0200

但使用修改时间有明显的缺点,出生日期可能不受支持。

linux
  • 2 个回答
  • 1062 Views
Martin Hope
Fravadona
Asked: 2025-03-14 21:49:20 +0800 CST

POSIX 问题 8 中 `realpath` 命令的 -E 选项的起源是什么?

  • 7

命令realpath实用程序现在由 POSIX 在其第 8 期 (2024) 中定义:realpath — 解析路径名

真实路径 [-E|-e] 文件

realpath 实用程序将规范化文件操作数指定的路径名​​,如下所示:

如果使用指定路径名作为其第一个参数的函数调用realpath()成功,则规范化路径名应为该调用返回的路径名realpath()。否则:

  • 如果指定了-e选项,规范化将失败。

  • 如果指定了-Erealpath()选项,则如果以指定路径名作为其第一个参数对函数的调用遇到 [ENOENT] 以外的错误情况,则规范化将失败;如果调用遇到 [ENOENT] 错误,realpath 将扩展所有遇到的符号链接,尝试使用 XBD 4.16 路径名解析中指定的算法来解析指定的路径名​​,但应忽略任何<slash>不是前导<slash>字符的尾随字符。如果此扩展成功,并且扩展路径名的路径前缀解析为现有目录,则规范化路径名应为扩展路径名。在所有其他情况下,规范化都将失败。如果扩展路径名不为空、不以 开头<slash>,并且只有一个路径名组件,则应将其视为具有路径前缀“ ./”。

  • 如果未指定任何选项,realpath 将以未指定的方式规范化指定的路径名​​,使得生成的绝对路径名不包含任何引用符号链接类型文件的组件,也不包含任何点或点点组件。

成功规范化后,realpath 会将规范化的路径名(后跟一个<newline>字符)写入标准输出。

如果规范化失败,或者规范化的路径名为空,则不会向标准输出写入任何内容,而会向标准错误写入诊断消息,并且 realpath 会以非零状态退出。

[...]

我的问题是:至少 GNU 和 Solaris 已经支持-e该选项,但我在检查过的所有版本(macOS、FreeBSD、Solaris、GNU)中realpath都找不到该选项的提及。OpenGroup 发明了它吗?-Erealpath

shell
  • 1 个回答
  • 122 Views
Martin Hope
Fravadona
Asked: 2025-01-22 17:27:35 +0800 CST

在 Linux 上执行 `wipefs` 后恢复已删除的字节

  • 9

重新安装 Linux 机器后,我无意中wipefs -a在安装程序 pendrive 上运行了:

$ wipefs -a /dev/sd?
/dev/sda: 8 bytes were erased at offset 0x00010040 (btrfs): 5f 42 48 52 66 53 5f 4d
/dev/sdb: 8 bytes were erased at offset 0x00010040 (btrfs): 5f 42 48 52 66 53 5f 4d
...
/dev/sdw: 8 bytes were erased at offset 0x00010040 (btrfs): 5f 42 48 52 66 53 5f 4d
/dev/sdx: 8 bytes were erased at offset 0x00010040 (btrfs): 5f 42 48 52 66 53 5f 4d
/dev/sdy: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31
/dev/sdy: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sdy: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sdy: calling ioctl to re-read partition table: Success

由于wipefs输出包含偏移量和已删除字节的内容,因此似乎可以恢复/dev/sdy。您将如何做?

linux
  • 1 个回答
  • 290 Views
Martin Hope
Fravadona
Asked: 2024-12-22 00:48:44 +0800 CST

如何将文件保存在 /tmp 中?

  • 11

我有一个 RHEL 8 工作站,其中托管一个应用程序,其 GUI 可通过 https 访问。

当应用程序启动时,它会创建一些/tmp具有随机名称和.sock后缀的套接字文件:

$ ls -l /tmp/*.sock
srwx------ 1 app app 0 Dec 21 13:30 /tmp/supervisor-358513b0f6222d2339e4ab66d30b0037.sock
srwx------ 1 app app 0 Dec 21 13:31 /tmp/mongodb-358513b0f6222d2339e4ab66d30b0037.sock
srwx------ 1 app app 0 Dec 21 13:31 /tmp/livegui-358513b0f6222d2339e4ab66d30b0037.sock

$ file /tmp/*.sock
/tmp/supervisor-358513b0f6222d2339e4ab66d30b0037.sock: socket
/tmp/mongodb-358513b0f6222d2339e4ab66d30b0037.sock:    socket
/tmp/livegui-358513b0f6222d2339e4ab66d30b0037.sock:    socket

更新:套接字文件名的“随机”部分实际上是应用程序安装路径的 MD5。

当人们频繁使用该应用程序时,该应用程序可以正常运行数周/数月,但是当几天内无人连接到该应用程序时,它就会停止响应;当这种情况发生时,我可以看到文件.sock在应用程序进程仍在运行时被删除......

有没有什么办法可以防止删除某些文件/tmp?

linux
  • 4 个回答
  • 1000 Views
Martin Hope
Fravadona
Asked: 2024-12-14 05:04:04 +0800 CST

rsync-排除除少数目录和文件之外的所有目录和文件

  • 7

我必须将一些文件/目录从几个人共享的目录移动到另一台计算机。我必须移动的元素是一些目录、一些子目录、子目录中的一些特定文件等……有点乱 ^^

我正在尝试应用https://serverfault.com/a/788007/154366中的方法,但不知何故失败了。

这是我的测试设置(我试图使其具有足够的代表性,以便能够理解其中的大部分复杂之处,rsync --filter=merge以便我可以将它应用到我的实际问题中):

#!/bin/bash
mkdir -p /tmp/test/{a/b,b/{a,b},c,.d}
touch /tmp/test/{f.txt,.f.txt,{a/b,b,b/{a,b},c,.d}/f.txt,b/.f.txt}
tree -a /tmp/test
/tmp/test
├── a
│   └── b
│       └── f.txt
├── b
│   ├── a
│   │   └── f.txt
│   ├── b
│   │   └── f.txt
│   ├── .f.txt
│   └── f.txt
├── c
│   └── f.txt
├── .d
│   └── f.txt
├── .f.txt
└── f.txt

现在我想使用单个rsync -av命令将以下项目从 复制/tmp/test到/tmp/filt:

  • 完整./a目录
  • 完整./b/b目录
  • ./b目录的所有文件和点文件直接子目录
  • ./目录的所有文件(非点文件)的直接子目录

我预期的“副本”在此处标记=>:

/tmp/test/           =>  /tmp/filt/
/tmp/test/a/         =>  /tmp/filt/a/
/tmp/test/a/b/       =>  /tmp/filt/a/b/
/tmp/test/a/b/f.txt  =>  /tmp/filt/a/b/f.txt
/tmp/test/b/         =>  /tmp/filt/b/
/tmp/test/b/a/
/tmp/test/b/a/f.txt
/tmp/test/b/b/       =>  /tmp/filt/b/b/
/tmp/test/b/b/f.txt  =>  /tmp/filt/b/b/f.txt
/tmp/test/b/f.txt    =>  /tmp/filt/b/f.txt
/tmp/test/b/.f.txt   =>  /tmp/filt/b/.f.txt
/tmp/test/c/
/tmp/test/c/f.txt
/tmp/test/.d/
/tmp/test/.d/f.txt
/tmp/test/f.txt      =>  /tmp/filt/f.txt
/tmp/test/.f.txt

因此我编写了以下filter.txt文件以便与 rsync 一起使用它--filter=merge:

+ /[!.]*
+ /a/
+ /a/**
+ /b/
+ /b/b/
+ /b/b/**
- /b/*/
+ /b/*
- /**

但是当我运行命令时:

rsync -av --dry-run --filter='merge filter.txt' /tmp/test /tmp/filt/

我得到:

sending incremental file list
test/

sent 74 bytes  received 20 bytes  188.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

注意:当然,该/tmp/filt目录不存在,因此缺少输出与它无关。

我做错什么了?

bash
  • 1 个回答
  • 75 Views
Martin Hope
Fravadona
Asked: 2024-12-07 19:46:14 +0800 CST

从 RHEL 8 连接到远程 macOS Sonoma 时,Vim 通过 SSH 出现问题

  • 7

当我从 Linux RHEL 8 连接到远程 macOS Sonoma 时ssh -J user@portal user@mac,连接后我运行vim somefile,在退出 Vim 后,我在“页面”的左上角以及 shell 提示符下得到了一些多余的字符:

[>4;m

注意:我无法正确捕获这些字节,我不知道该怎么做

这不是我第一次遇到这个问题,使用不同的本地/远程操作系统组合(Solaris/FreeBSD/AIX/Linux/macOS),但以前我只需要terminfo在远程 NIX 上安装软件包即可解决这个问题。

不过,在 macOS Sonoma 上,RHEL 8 使用的 terminfoxterm-256color已经在 中/usr/share/terminfo/78/xterm-256color,更改TERM为xterm没有帮助。

对于如何修复该问题您有什么想法吗?

ssh
  • 2 个回答
  • 116 Views
Martin Hope
Fravadona
Asked: 2024-11-28 08:13:22 +0800 CST

RHEL8 有条件自动更新

  • 5

我的任务是为一些高性能 RHEL8 工作站和服务器设置自动更新。
我不喜欢这样做,因为无人值守的更新可能会出很多问题,但是,似乎引发错误和数据丢失比让计算机至少每周不更新“更安全”……

目标计算机使用zfs和kmod-nvidia(分别来自 zfsonlinux.org 和www.elrepo.org);两个 RPM 都需要匹配的内核“版本”,因此我想要实施的第一个安全措施是确保当有新内核可用时,安装的zfs和kmod-nvidia(或其可用更新)与其兼容。

例如,现在有一个新的内核:

$ sudo dnf update --assumeno
Updating Subscription Management repositories.
Last metadata expiration check: 0:57:59 ago on Thu 28 Nov 2024 12:08:30 AM CET.
Dependencies resolved.
==========================================================================================================================================================
 Package                           Architecture           Version                                  Repository                                        Size
==========================================================================================================================================================
Installing:
 kernel                            x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     10 M
Upgrading:
 bpftool                           x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     11 M
 kernel-headers                    x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     12 M
 kernel-tools                      x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     11 M
 kernel-tools-libs                 x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     10 M
 pam                               x86_64                 1.3.1-36.el8_10                          rhel-8-for-x86_64-baseos-rpms                    748 k
 python3-perf                      x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     11 M
 webkit2gtk3                       x86_64                 2.46.3-2.el8_10                          rhel-8-for-x86_64-appstream-rpms                  28 M
 webkit2gtk3-jsc                   x86_64                 2.46.3-2.el8_10                          rhel-8-for-x86_64-appstream-rpms                 4.5 M
Installing dependencies:
 kernel-core                       x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     43 M
 kernel-devel                      x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     24 M
 kernel-modules                    x86_64                 4.18.0-553.30.1.el8_10                   rhel-8-for-x86_64-baseos-rpms                     36 M

Transaction Summary
==========================================================================================================================================================
Install  4 Packages
Upgrade  8 Packages

Total download size: 202 M

安装的kmod-nvidia接缝兼容:

$ sudo dnf repoquery --requires kmod-nvidia | awk '$1 == "kernel"'
kernel >= 4.18.0-553.el8_10

但我不知道该说些什么,因为其 RPM 中zfs没有提到任何要求:kernel

$ sudo dnf repoquery --requires zfs
Updating Subscription Management repositories.
/bin/sh
/usr/bin/python3.6
libblkid.so.1()(64bit)
libblkid.so.1(BLKID_1.0)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libcrypto.so.1.1()(64bit)
libdl.so.2()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libnvpair.so.3()(64bit)
libnvpair3(x86-64) = 2.1.15-1.el8
libnvpair3(x86-64) = 2.1.15-2.el8
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.12)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.3.3)(64bit)
libtirpc.so.3()(64bit)
libudev.so.1()(64bit)
libudev.so.1(LIBUDEV_183)(64bit)
libuuid.so.1()(64bit)
libuuid.so.1(UUID_1.0)(64bit)
libuutil.so.3()(64bit)
libuutil3(x86-64) = 2.1.15-1.el8
libuutil3(x86-64) = 2.1.15-2.el8
libz.so.1()(64bit)
libzfs.so.4()(64bit)
libzfs5(x86-64) = 2.1.15-1.el8
libzfs5(x86-64) = 2.1.15-2.el8
libzfs_core.so.3()(64bit)
libzpool.so.5()(64bit)
libzpool5(x86-64) = 2.1.15-1.el8
libzpool5(x86-64) = 2.1.15-2.el8
openssl
rtld(GNU_HASH)
sysstat
systemd
util-linux
zfs-kmod = 2.1.15

如何验证已安装的(或可用的更新)zfs是否与新内核兼容?

rhel
  • 1 个回答
  • 36 Views
Martin Hope
Fravadona
Asked: 2022-04-14 00:25:04 +0800 CST

如何防止自动附加到 .bashrc 生效?

  • 27

我正在寻找一种方法来消除某些附加代码以.bashrc自动强制加载其环境的安装程序的不良行为。这个问题出现了几次,主要是在 Conda 上,在某些情况下,用户最终会使用一个损坏的帐户阻止他们再登录。

我试图在 .bashrc 的末尾添加一个未关闭的 here-document,如下所示:

# .bashrc

#...

: <<'__END__'

哪个有效,但会产生解析错误烦人的警告。

什么是一种干净的方法(不使 .bashrc 只读)?

bash
  • 3 个回答
  • 1677 Views
Martin Hope
Fravadona
Asked: 2022-04-01 04:03:32 +0800 CST

从 crontab 转发电子邮件的 POSIX(或便携式)方式

  • 1

我有一个适用于 IRIX/Linux/macOS/FreeBSD 的安装程序/更新程序脚本,我想将其兼容性扩展到 Solaris。

我已经修复了一些不符合 POSIX 的部分,除了crontab像这样生成的部分:

printf '%s\n' [email protected] '*/15 * * * * /path/cmd' | crontab -
# crontab -l # (on Linux/macOS/FreeBSD)
[email protected]
*/15 * * * * /path/cmd

注意: /path/cmd除非检测到问题,否则是安静的

代码在 Solaris 上失败有以下三个原因:

  1. MAILTO=引发语法错误
  2. */15引发语法错误
  3. crontab -尝试打开名为-

我用以下方法修复了 #2和#3:

printf '%s\n' '0,15,30,45 * * * * /path/cmd' | crontab
# crontab -l
0,15,30,45 * * * * /path/cmd

现在我不知道如何转换MAILTO=零件。从 POSIX 转发电子邮件的方法是crontab什么?


选择的解决方法:

感谢@ilkkachu和@Gilles'SO-stopbeingevil'指针,这就是我决定以符合 POSIX的方式模拟crontab行为的方式:MAILTO

# crontab -l
0,15,30,45 * * * * out=$(/path/cmd 2>&1); [ -n "$out" ] && printf \%s\\n "$out" | mailx -s "Cron <$LOGNAME@$(uname -n)>" [email protected]

但是,这个解决方案有一个潜在的问题:如果printf不是内置的 shell并且输出太大,那么它将失败并出现类似的问题。Argument list too long

shell cron
  • 1 个回答
  • 158 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve