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-137794

Kahn's questions

Martin Hope
Kahn
Asked: 2021-10-08 05:08:44 +0800 CST

echo 0>file.txt 和 echo 0>file.txt 有什么区别?

  • 28

我看到这有以下行为:

[root@divinity test]# echo 0 > file.txt
[root@divinity test]# cat file.txt
0
[root@divinity test]# echo 0> file.txt

[root@divinity test]# cat file.txt

我还注意到,如果我包含""then 它会按预期工作:

[root@divinity test]# echo 0""> file.txt
[root@divinity test]# cat file.txt
0

我想这只是 IO 重定向的一部分,但我不太明白echo 0>在做什么。

shell io-redirection
  • 2 个回答
  • 3515 Views
Martin Hope
Kahn
Asked: 2021-09-29 10:45:01 +0800 CST

如果 !<command> (...) 与 <command> ; 如果 [ $? -eq 0 ] (...)

  • 5

我正在编写一个 shell 脚本,并决定通过shellcheck.net检查我的工作。我能够在我的脚本中获得以下两行的功能相同的行为:

findmnt /dev/sda1 >/dev/null ; if [ $? -eq 0 ]; then echo 1; else echo 0; fi

对比

if ! findmnt /dev/sda1 >/dev/null; then echo 0; else echo 1; fi

但是 shellcheck抛出:

SC2181:直接使用例如“if mycmd;”检查退出代码,而不是间接使用 $?。

我不清楚使用哪个。我确实看到:https ://github.com/koalaman/shellcheck/issues/1167这似乎已经针对几个可能的值进行了修改。我想确保我正在编写一些使用最佳实践的东西,并且可以毫无问题地运行并准确报告。

scripting control-flow
  • 1 个回答
  • 1495 Views
Martin Hope
Kahn
Asked: 2021-09-24 03:51:25 +0800 CST

GNOME 键盘快捷键是否保存到 Fedora 34 中的可查看文件中?

  • 1

我在任何地方都找不到我对各种快捷方式所做的更改的文件。

环境信息:

cat /usr/share/gnome/gnome-version.xml;echo;cat /etc/redhat-release 
<?xml version="1.0"?>
<gnome-version>
 <platform>40</platform>
 <minor>4</minor>
 <micro>0</micro>
 <distributor>GNOME.Org</distributor>
 <date>2021-08-19</date>
</gnome-version>
Fedora release 34 (Thirty Four)

随着gsettings list-schemas | grep keybindings我回来:

gsettings list-schemas | grep keybindings
org.gnome.desktop.wm.keybindings
org.gnome.mutter.wayland.keybindings
org.gnome.shell.keybindings
org.gnome.mutter.keybindings

在任何地方,似乎都没有我为黑曜石保存的(和有效的)绑定。GNOME 实际上将我的键盘快捷键保存到什么文件?

fedora gnome
  • 1 个回答
  • 170 Views
Martin Hope
Kahn
Asked: 2021-09-18 11:09:30 +0800 CST

ionice 是否也适用于 i/o 重定向?

  • 0

一位同事最近观察到一个命令:

user@host:~$ ionice -c 3 mysqldump -uredacted -p redacted redacted > redacted.dmp

由于有问题的主机deadline无论如何都使用调度程序,ionice因此被忽略。但是,有人提出了问题:

是否ionice也适用于>重定向?它适用于整个命令,还是仅适用于mysqldump?

io-redirection ionice
  • 1 个回答
  • 35 Views
Martin Hope
Kahn
Asked: 2021-09-09 04:09:16 +0800 CST

yum info vim 没有任何匹配的软件包要列出

  • 0

为什么不yum info vim返回有关我的 Fedora 34 机器上安装的 vim 的信息?

[root@oatmeal ~]# yum info vim
Last metadata expiration check: 0:06:02 ago on Wed 08 Sep 2021 08:01:25 EDT.
Error: No matching Packages to list

vim在我的主机上安装和配置:

[root@oatmeal ~]# which vim
/usr/bin/vim
[root@oatmeal ~]# vim --version | head -n 4                                                                                                                                                                                                   
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Sep 06 2021 00:00:00)
Included patches: 1-3404
Modified by <[email protected]>
Compiled by <[email protected]>

有关于其他已安装软件包的信息:

[root@oatmeal ~]# yum info openssl                                                                                                                                                                                                            
Last metadata expiration check: 0:05:49 ago on Wed 08 Sep 2021 08:01:25 EDT.
Installed Packages
Name         : openssl
Epoch        : 1
Version      : 1.1.1l
Release      : 1.fc34
Architecture : x86_64
Size         : 1.1 M
Source       : openssl-1.1.1l-1.fc34.src.rpm
Repository   : @System
From repo    : updates
Summary      : Utilities from the general purpose cryptography library with TLS implementation
URL          : http://www.openssl.org/
License      : OpenSSL and ASL 2.0
Description  : The OpenSSL toolkit provides support for secure communications between
             : machines. OpenSSL includes a certificate management tool and shared
             : libraries which provide various cryptographic algorithms and
             : protocols.

[root@oatmeal ~]# yum info firefox 
Last metadata expiration check: 0:05:56 ago on Wed 08 Sep 2021 08:01:25 EDT.
Installed Packages
Name         : firefox
Version      : 91.0.2
Release      : 1.fc34
Architecture : x86_64
Size         : 253 M
Source       : firefox-91.0.2-1.fc34.src.rpm
Repository   : @System
From repo    : updates
Summary      : Mozilla Firefox Web browser
URL          : https://www.mozilla.org/firefox/
License      : MPLv1.1 or GPLv2+ or LGPLv2+
Description  : Mozilla Firefox is an open-source web browser, designed for standards
             : compliance, performance and portability.
yum package-management
  • 2 个回答
  • 336 Views
Martin Hope
Kahn
Asked: 2020-03-04 09:54:30 +0800 CST

禁止程序在cent6上启动时启动,挂载的文件系统

  • 0

我正在使用 guestfish 安装文件系统。这是一台Cent6机器。我想确保它不会在启动时启动 http。我不能chmod -x /etc/rc.d/init.d/http,所以我选择了: mv /etc/rc.d/init.d/http /tmp/。

由于这是 guestfish 中的已挂载文件系统,因此我无法在此服务上发出 chkconfig 关闭。以上是否足以确保程序不会在启动时启动?

centos boot
  • 1 个回答
  • 16 Views
Martin Hope
Kahn
Asked: 2020-02-27 09:55:18 +0800 CST

logrotate 一个频繁写入的日志而不丢失数据

  • 0

我想通过 捕获慢速查询logrotate,并且我希望它们每周轮换一次,并且我想节省一年的价值。日志采用以下形式:

-rw-r-----. 1 mysql  root           1239 Feb 21 18:46 mysqld1-slow.log
-rw-r-----. 1 mysql  root            885 Feb 11 14:48 mysqld2-slow.log
-rw-r-----. 1 mysql  root            885 Feb 22 08:58 mysqld3-slow.log
-rw-rw-rw-. 1 mysql  root            802 Feb 11 14:47 mysqld-slow.log

因为日志最终被如此频繁地写入,我如何确保没有遗漏任何内容logrotate?该过程本身不会创建文件,它需要有原始文件。我在想这会做到这一点:

/var/log/mysqld*-slow.log {
    missingok
    notifempty
    weekly
    rotate 52
    compress
    delaycompress
    create 0644 mysql root
}

所以它应该压缩旧的,并使用正确的权限创建相同的文件名,但我不确定 logrotate 如何处理在移动中写入的内容。

permissions logs
  • 1 个回答
  • 336 Views
Martin Hope
Kahn
Asked: 2020-01-16 05:32:41 +0800 CST

Grep - 匹配后返回不同行大小的内容

  • 0

我需要找到一种grep在匹配后返回不同行大小的内容的方法。有些比赛后面有 4 行,其他有 20 行。我需要它们。

每小时我都希望返回前一小时的日志条目,其时间戳如下:

time: 20200115132443

为此,我想每隔一小时,一个 cronjob 都会将前一小时的时间戳作为 grep 语句运行:

grep "time: 2020011507"

我遇到的问题是比赛后某些条目的日志大小不同,所以像这样的事情grep -C 5不会一直有效。

我想知道我是否应该将匹配的所有内容返回到下一个匹配的 grep 语句(这将错过最后一个条目),或者是否有其他方式来运行它。示例日志文件片段如下所示:

time: 20200115132443
logging stuffs
time: 20200115134543
more logging 
stuffs 
like this
time: 20200115140201 # this should now not be returned

也许我过于复杂,可以只运行grep当前小时的语句,然后在该小时之前和前一小时之后获取所有内容。

grep logs
  • 1 个回答
  • 152 Views
Martin Hope
Kahn
Asked: 2020-01-15 10:53:25 +0800 CST

获取具有特定时间戳的日志文件的最后 X 分钟

  • 2

我正在尝试通过 IPA 主机的日志文件来获取最后五分钟的内容并获取有关新用户创建或 DNS 更改等内容的更新。我想 cron 这个,所以每五分钟它会检查前五分钟,检查并匹配一些字符串并通过电子邮件发送这些结果。我不知道如何轻松比较日志中显示的类型的字符串:

20200114184803 = 2020-01-14 | 18:48:03

time: 20200114184803
Stuff
Stuff
Stuff

time: 20200114184804
Stuff
Stuff
Stuff

time: 20200114184811
Stuff
Stuff
Stuff
linux logs
  • 2 个回答
  • 1454 Views
Martin Hope
Kahn
Asked: 2020-01-15 07:15:08 +0800 CST

跟踪实时日志文件并将匹配内容输出到电子邮件

  • 0

到目前为止:

#!/bin/bash

tail -fn0 /var/log/dirsrv/redacted-domain/audit | \
while read line ; do
        echo "$line" | grep -C 5 -i "add: member"

        if [ $? = 0 ]
        then
                 mail -s "New User Added" [email protected] > /dev/null
        fi
        echo "$line" | grep -C 5 -i "add: nsaccountlock"

        if [ $? = 0 ]
        then
                 mail -s "Account Disabled" [email protected] > /dev/null
        fi
done

我想从文件中获取 grep 匹配项的内容/var/log/dirsrv/redacted-domain/audit并将它们放入电子邮件中以发送到[email protected]. 使用上述循环将 grep 语句放入电子邮件本身是多余的(并且无论如何都不起作用)。

对不起,我应该包括一个正在被 grepped 的样本:

time: 20200114133315 dn: cn=users,cn=groups,cn=accounts,dc=ipa,dc=domain,dc=com result: 0 changetype: modify add: member member: uid=example_user,cn=users,cn=accounts,dc=ipa,dc=domain,dc=com

我想找到匹配的类型add: member并将整个 ^ 返回到电子邮件中。

linux grep
  • 1 个回答
  • 2594 Views
Martin Hope
Kahn
Asked: 2019-12-24 08:42:47 +0800 CST

主机配置了 resolvconf 和 dnsmasq,重启 dnsmasq 一直指向旧服务器

  • 0

我有一个 Ubuntu 16.04.2 LTS 主机。它被配置为dnsmasq用于 DNS 转发,而不是使用resolv.conf填充名称服务器。配置是标准的,其中resolv.conf只有:

nameserver 127.0.0.1
search redacted.searchfield.com

主机配置/etc/resolv.dnsmasq了 4 个名称服务器。当我重新启动 dnsmasq 服务时,它指向主机上一次配置的 3 个名称服务器(但不再),并自动将它们写入/var/run/dnsmasq/resolv.conf,忽略 .中定义的 4 个名称服务器/etc/resolv.dnsmasq。

如果我将其中的四个输入/var/run/dnsmasq/resolv.conf并让dnsmasq服务运行,我可以让服务正确读取正确的名称服务器。但是,如果我重新启动服务,它只会再次指向这 3 个旧名称服务器。

这是缓存在某个地方吗?我这里不用nscd。我想知道该resolvconf服务是否会导致问题,并且不应该同时运行dnsmasq?

dnsmasq resolv.conf
  • 1 个回答
  • 747 Views
Martin Hope
Kahn
Asked: 2019-12-02 10:22:06 +0800 CST

检查明天是否是本月的第一天在 bash 脚本中失败

  • 1

我有一个每天运行的脚本。根据一周中的哪一天,或者明天是一个月的最后一天,它会将文件移动到不同的位置。我省略了实际功能。

变量:

TOM=$(TZ=UTC-24 date +%d)
SUNDAY=$(date +%w)

逻辑如下:

    if [ $TOM -eq 1 ]; then
            move_files monthly
    echo EXEUTING END OF MONTH MOVE AND PURGE, NON-DAILY, NON-END-OF-MONTH

    elif [ $SUNDAY -eq 0 ]; then
            move_files weekly
    echo EXECUTING SUNDAY MOVE AND PURGE, NON-DAILY, NON-END-OF-MONTH

    else echo EXECUTING DAILY MOVE AND PURGE NON-SUNDAY, NON-END-OF-MONTH
            move_files daily
    fi

一切都正常执行,但是昨天(11 月 30 日)它没有正确地将文件移动到monthly目录中,这是move_files monthly功能的一部分。在其他地方测试,这似乎工作正常。

我正在运行它的主机是 UTC。

bash shell-script
  • 2 个回答
  • 596 Views
Martin Hope
Kahn
Asked: 2019-11-28 08:30:02 +0800 CST

cpulimit 实际上并没有限制 CPU 使用率

  • 3

我打电话cpulimit来自cron:

00 16 * * * /usr/bin/cpulimit --limit 20 /bin/sh /media/storage/sqlbackup/backups.sh

当工作开始时,CPU 会像往常一样出现峰值并发出警报,而没有发生实际可识别的限制。该作业本身迭代许多子目录的目录并rsync每次执行 's,我相信这会产生rsync子进程(运行 top 将有一个可用于被调用的 rsync 的 pid,几分钟后将有一个不同的 pid rsync)。

我不确定如何正确利用cpulimit来有效限制此过程消耗的使用量。

记住这是一个具有 2G RAM 和 1vCPU 的 VM 可能很重要。

rsync cron
  • 1 个回答
  • 2386 Views
Martin Hope
Kahn
Asked: 2019-11-23 11:51:25 +0800 CST

将所有用户的时钟设置为 24 小时格式

  • 4

在 Fedora 30 上,我目前在桌面环境中以 24 小时格式显示日期。我正在通过chronyd同步时间。但在 CLI 上,时间显示Fri 22 Nov 2019 02:47:51 PM EST为所有用户。

我想将时间格式设置为使用 24 小时制。timedatectl作为用户设置和重新登录没有任何区别。

fedora clock
  • 1 个回答
  • 32180 Views
Martin Hope
Kahn
Asked: 2019-11-23 10:07:55 +0800 CST

查找所有不包含匹配子目录的目录并创建它们

  • 0

我有以下目录结构:

/media/storage/sqlbackup/CUSTOMER1
/media/storage/sqlbackup/CUSTOMER2
...
/media/storage/sqlbackup/CUSTOMER*

每个CUSTOMER*目录可能包含名为daily、weekly和的子目录monthly。如果一个CUSTOMER*目录不包含dailyOR weeklyOR monthly,我希望它被创建,如果它包含,那么我希望它保留。

前: CUSTOMER1/daily

后: CUSTOMER1/{daily,weekly,monthly}

我试图通过巧妙地使用 find 来做到这一点,但试图返回所有不匹配的内容。

directory-structure directory
  • 1 个回答
  • 35 Views
Martin Hope
Kahn
Asked: 2019-11-23 06:13:18 +0800 CST

ntpstat 在不同时间运行时显示不同的服务器

  • 0

ntpstat synchronised to NTP server (IP addr redacted) at stratum 5 time correct to within 180 ms polling server every 1024 s

如果我稍后返回并运行ntpstat,结果有时会返回我放置的不同 IP 地址IP addr redacted。

这是结果polling server every xs吗?因此,如果它每 17 分钟检测到某个漂移/差异阈值,它将同步到池中定义的另一台服务器/etc/ntp.conf?

ntp
  • 1 个回答
  • 316 Views
Martin Hope
Kahn
Asked: 2019-11-16 11:44:24 +0800 CST

:>filename.txt 是做什么的?

  • 23
:>filename.txt

例如:

root@box$ dd if=/dev/zero of=file.txt count=1024 bs=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00536175 s, 196 MB/s
root@box$ ll
total 1024
-rw-r--r-- 1 root root 1048576 Nov 15 14:40 file.txt
root@box$ :>file.txt
root@box$ ll
total 0
-rw-r--r-- 1 root root 0 Nov 15 14:40 file.txt

这与一个不同rm吗?它是否比其他类似的归零文件或删除文件的方法更快或更慢?

bash
  • 4 个回答
  • 3089 Views
Martin Hope
Kahn
Asked: 2019-11-12 06:46:49 +0800 CST

不匹配的正则表达式 - 验证器返回 OK [重复]

  • 0
这个问题在这里已经有了答案:
[0-9]、[[:digit:]] 和 \d 之间的区别 4 个答案
2年前关闭。

很困惑为什么会这样:

sudo ps aux | grep -E '\/erts-[1-9]\d*(\.\d+)+\/bin\/beam'

不返回beam.smp表单进程的匹配项:

/opt/api_presence/erts-8.3/bin/beam.smp

所有正则表达式测试器/验证器都确认这会根据输入的内容返回预期的输出。至少您可以使用/bin/beam.

在评论中,用户 muru 发现了我的问题。

regular-expression
  • 1 个回答
  • 49 Views
Martin Hope
Kahn
Asked: 2019-11-07 04:41:42 +0800 CST

取消当前命令但保存到历史记录

  • 0

在 bash 中,我们可以在命令前添加一个命令#并将未执行的命令插入到我们的历史记录中。有没有办法通过一些快捷键或键绑定来实现类似的行为?

linux
  • 1 个回答
  • 91 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