小编roa*_*ima的帖子

如何检查 SMB 连接和在 linux 上使用的方言?

我想检查 SMB 连接中的方言版本。

在 Windows 上,Get-SmbConnection会得到它。

PS C:\Windows\system32> Get-SmbConnection
ServerName    ShareName     UserName     Credential   Dialect      NumOpens
----------    ---------     --------     ----------   -------      -------
savdal08r2    c$            SAVILLTEC... SAVILLTEC... 2.10         1
savdalfs01    c$            SAVILLTEC... SAVILLTEC... 3.00         1
Run Code Online (Sandbox Code Playgroud)

在 macOS 上, smbutil statshares -a运行良好。

我应该在 linux 上做什么?

linux command-line ubuntu arch-linux samba

7
推荐指数
2
解决办法
3万
查看次数

在 Unix Shell 脚本中的 Cut 中使用制表符分隔符

我有input.txt以下 TAB 分隔格式的数据文件-

23776112        Inactive        Active
23415312        Inactive        Active
Run Code Online (Sandbox Code Playgroud)

根据要求,在while循环内,我想使用剪切第一列的数据并打印它-

以下是部分代码-

......
......
    while read line
    do  
        SN=`echo ${line}|cut -d '       ' -f1`
        echo $SN
    done < input.txt
....
....
Run Code Online (Sandbox Code Playgroud)

要将制表符用作上面的分隔符,我正在使用 Ctrl V Tab

但输出并不如预期。我得到 O/P-

23776112 Inactive Active
23415312 Inactive Active
Run Code Online (Sandbox Code Playgroud)

而我想要 O/P 之类的 -

23776112 
23415312
Run Code Online (Sandbox Code Playgroud)

shell-script echo cut

6
推荐指数
1
解决办法
2万
查看次数

rsync 非 ASCII 字符

我使用 rsync 来备份我的网站文件,使用 --link-dest 从以前的 rsync 备份中复制。

rsync -zavx -e 'ssh -p22' \
   --numeric-ids \
   --delete -r \
   --link-dest=../"$latest_backup" "$rhost:$rhost_source" "$local_dest";
Run Code Online (Sandbox Code Playgroud)

我注意到带有非 ascii 字符的文件看起来已经转换了它们的字符,因此 rsync 正在删除它们然后重新下载它们。

下面是一个例子:

deleting public_html/images/made/96096a4645d59a3e/Moulin_a?\#200_vent_Bourgogne_DBW1901_680_680_s_c1.jpg

public_html/images/made/96096a4645d59a3e/Moulin_à_vent_Bourgogne_DBW1901_1200_801_80.jpg
Run Code Online (Sandbox Code Playgroud)

是否可以阻止 rsync 转换字符?

rsync shell-script filenames

6
推荐指数
1
解决办法
1856
查看次数

MTA 和 SMTP 服务器有什么区别?

以后缀为例。它是一个 MTA,但它也是一个 SMTP 服务器吗?所有 MTA 都是 SMTP 服务器吗?有吗?邮件运输代理和邮件传输代理有区别吗?

MTA 是否可以配置为 SMTP 服务器,反之亦然?MTA 和 SMTP 服务器有什么区别?

linux smtp mail-transport-agent

6
推荐指数
1
解决办法
4919
查看次数

rsync 块压缩字典是否为每个文件重置?

是否rsync -z在不考虑前一个文件的情况下压缩每个文件的块,或者是否为每个文件重置压缩字典以便独立处理?

例如,考虑一个可压缩文件one.txt及其相同的副本被传输到远程服务器,其中两个文件都不存在:

cp -p one.txt two.txt
rsync -az one.txt two.txt remote:
Run Code Online (Sandbox Code Playgroud)

zlib压缩层是否独立处理one.txt和处理two.txt,还是该级别的数据传输只是一个连续的流,因此它将学习一个有用的压缩字典,one.txt以便它可以应用于two.txt

或者,我是否完全误解了zlib压缩算法,例如(例如)总是为每个新块重置字典?

我试过查看rsync调试输出,rsync -avvvvz --debug=IO1,IO2,IO3,IO4 --msgs2stderr但看不到任何与压缩层特别相关的内容。

(这是对我在 ServerFault 上的一个答案的评论线程的跟进。)

compression rsync

6
推荐指数
1
解决办法
151
查看次数

使用通配符扩展 item={one,two,three}

如果我使用bash's 大括号扩展,我会得到一个列表

echo item={one,two,three}
item=one item=two item=three
Run Code Online (Sandbox Code Playgroud)

假设我在一个包含与通配符匹配的文件/文件夹的目录中,有没有办法让扩展与这些文件/文件夹匹配?

ls
blue  green  red

echo item=*      # Obviously not
item=*

echo item={*}    # Maybe? ...but no
item={*}
Run Code Online (Sandbox Code Playgroud)

在我的例子中,我希望扩展是 item=blue item=green item=red

我得到的最好的就是这样的代码

items=()
for dirent in *; do items+=("item=$dirent"); done
echo "${items[@]}"

item=blue item=green item=red
Run Code Online (Sandbox Code Playgroud)

bash wildcards

6
推荐指数
1
解决办法
314
查看次数

手册页的输出中有奇数字符

我正在使用 Fedora 和 Gnome。我使用 GNOME 终端,并且遇到一些奇怪的输出字符,这些字符似乎围绕着输出中的某些关键字。

1mNAME0m
       sync - Synchronize cached writes to persistent storage

1mSYNOPSIS0m
       1msync 22m[4mOPTION24m] [4mFILE24m]...

1mDESCRIPTION0m
       Synchronize cached writes to persistent storage

       If one or more files are specified, sync only them, or their containing file systems.

       1m-d22m, 1m--data0m
Run Code Online (Sandbox Code Playgroud)

可以看出1m, 、22m4m24m被用作(令人沮丧的)荧光笔。我相信这可能是“行尾”或其他一些特殊字符。我在终端首选项中使用 Unicode UTF-8 编码。

我怎样才能将它们删除?

linux man

6
推荐指数
0
解决办法
851
查看次数

systemd 每隔几个小时重新启动 ntp。为什么?

我有三个运行 Bullseye 的树莓派。我不知道它是什么时候开始的(显然是为什么),但是 ntpd 每 2 小时就会重新启动一次。我在 Journalctl 输出或 daemon.log 中可以看到的只是

Dec  8 04:43:43 ntp1 systemd[1]: Stopping Network Time Service...
Dec  8 04:43:43 ntp1 systemd[1]: Stopped Network Time Service.
Dec  8 04:43:43 ntp1 systemd[1]: Starting Network Time Service...
Run Code Online (Sandbox Code Playgroud)

ntpd 似乎没有做错什么。我怎样才能找出 systemd 这样做的原因并阻止它?

在这种情况下,ntpd 配置为具有本地 PPS 参考时钟的层 1 服务器,因此这就是为什么我宁愿它不要无缘无故地重新启动。

这是 ntp 服务文件:

[Unit]
Description=Network Time Service
Documentation=man:ntpd(8)
After=network.target
Conflicts=systemd-timesyncd.service

[Service]
Type=forking
# Debian uses a shell wrapper to process /etc/default/ntp
# and select DHCP-provided NTP servers if available
ExecStart=/usr/lib/ntp/ntp-systemd-wrapper
PrivateTmp=true

[Install] …
Run Code Online (Sandbox Code Playgroud)

systemd

6
推荐指数
1
解决办法
1091
查看次数

下载文件并通过管道解压缩并不像预期的那么快

我需要在资源有限且对延迟非常敏感的环境中尽快下载并解压缩文件(具有 1 个 cpu、2 个内核、128MB RAM 的虚拟机)

当然,我尝试将下载过程通过管道传输到解压缩过程,并假设我可以在下载的同时解压缩。我知道管道被最慢的进程阻塞。为了克服这个问题,我在下载和解压缩过程之间使用了一个缓冲区。

我的 shell 脚本看起来像这样:

curl -s $CACHE_URL | buffer -S 100M | lz4 -d > /tmp/myfile
Run Code Online (Sandbox Code Playgroud)

如果我首先下载压缩文件,然后在不使用管道的情况下解压缩,则下载大约需要 250 毫秒,如果按顺序执行,解压缩大约需要 250 毫秒。

因此,我的假设是管道方法将花费大约 250-275 毫秒,因为中间没有额外的磁盘读取,并且下载不像解压缩那样受 CPU 限制,因此不会影响那么多。

但事实并非如此。正如我的日志所示,它的速度稍快一些:

Start download  
35211K,      81131K/s
Download & decompressed done in 447ms

Starting individual download & decompress
Download done in 234ms
Decompressed : 61 MiB  
                                                                               
/tmp/myfile        : decoded 75691880 bytes 
Decompress done in 230ms
Run Code Online (Sandbox Code Playgroud)

我这里是不是想错了?还有其他方法可以加快这个速度吗?

download pipe compression shell-script curl

6
推荐指数
1
解决办法
300
查看次数

同时运行子目录中的命令

我知道如何在与这样的模式匹配的所有子目录中运行命令(假设我想运行gh repo sync):

for d in ./*/ ; do (cd "$d" && gh repo sync) ; done
Run Code Online (Sandbox Code Playgroud)

并在每个目录的子shell中串行运行命令。

我想要的是并行运行所有命令,但在主脚本中等待它们全部完成。

我使用的是 Ubuntu 22.04。那可能吗?

ubuntu shell-script

6
推荐指数
2
解决办法
667
查看次数