小编Suz*_*Soy的帖子

打破文件夹内的所有硬链接

我有一个文件夹,其中包含一定数量的具有硬链接的文件(在同一文件夹中或其他地方),我想取消这些文件的硬链接,因此它们变得独立,并且对其内容的更改不会影响任何其他文件(它们的链接数变为 1)。

下面,我给出了一个解决方案,它基本上将每个硬链接复制到另一个位置,然后将其移回原位。

然而,这种方法似乎相当粗糙且容易出错,所以我想知道是否有一些命令可以为我解除文件的硬链接。

粗略的回答:

查找具有硬链接的文件(编辑:要同时查找具有硬链接的套接字等,请使用find -not -type d -links +1):

find      -type f -links +1 # files only
find -not -type d -links +1 # files, sockets etc.
Run Code Online (Sandbox Code Playgroud)

解除文件硬链接的粗略方法(将其复制到另一个位置,然后将其移回): 编辑: 正如 Celada 所说,最好在下面执行 cp -p,以避免丢失时间戳和权限。 编辑: 创建一个临时目录并复制到其下的文件,而不是覆盖临时文件,它最大限度地降低了覆盖某些数据的风险,尽管该mv命令仍然存在风险(感谢@Tobu)。 编辑: 尝试在同一文件系统(@MikkoRantalainen)中创建临时目录。

# This is unhardlink.sh
set -e
for i in "$@"; do
  temp="$(mktemp -d -- "${i%/*}/hardlnk-XXXXXXXX")"
  [ -e "$temp" ] && cp -ip "$i" "$temp/tempcopy" && mv "$temp/tempcopy" "$i" && rmdir "$temp"
done
Run Code Online (Sandbox Code Playgroud)

因此,要取消硬链接所有硬链接(编辑 …

unix hardlink

9
推荐指数
1
解决办法
1751
查看次数

从命令行生成 CPU、内存、磁盘和网络图

我想定期(例如使用 cron)生成一个图像(例如 png),其中包含 CPU 使用情况、内存使用情况、磁盘 I/O 负载和网络使用情况的图表。

我想要一些不太难看的东西,所以gnuplot图表有点粗糙,但如果这是唯一的选择,我还是会接受它。

经过半小时的谷歌搜索,我一直无法找到一个简单的工具来做到这一点,而无需进行大量配置。

我想过使用conky并要求它渲染到文件而不是在屏幕上显示图形,但是我找不到conky. 我想到的唯一解决方案是启动一个虚拟的 Xorg 会话,让 conky 运行它,并定期截取屏幕截图。

我还看到了大量关于使用dstat或类似工具的博客文章等,但这些生成的文本报告,而不是图表。

是否有一个命令行工具设置起来非常简单,可以生成(漂亮的)GPU 图形和类似的图形,而无需我进行大量配置?

就像是:

generategraph --cpu --interval 300 --output mygraph.png
Run Code Online (Sandbox Code Playgroud)

编辑:

迄今为止引用的其他工具(rrdtool、mrtg、zabbix、orca)的问题在于它们是专为全职网络管理员设计的企业级软件。我只想要一些简单的东西,我可以在一个小盒子上运行并在几秒钟内设置好,而不是花几天时间来配置它。

我刚刚意识到我问的是 serverfault 而不是我想要的超级用户,所以这解释了我得到的答案:) 谢谢大家,很抱歉浪费你的时间,我请求关闭这个问题/迁移到超级用户。

image command-line-interface graph

4
推荐指数
1
解决办法
2657
查看次数

Windows:查看其他网络共享,而无需自己共享任何内容

使用 Windows,我希望能够浏览网络上的计算机及其共享,而无需发布任何共享、管理共享,甚至不将我的计算机列在其他计算机上的“网络”文件夹中。

使用 Windows 时,如果我转到“网络”文件夹,我会看到这个黄色条: 网络发现和文件共享已关闭。 网络计算机和设备不可见。 点击更改...

如果我点击并选择“打开网络发现和文件共享”,那么我的电脑就会出现在其他人的网络视图中,他们可以浏览我的文件。

打开网络发现和文件共享

基本上,如果我想看你的文件,我必须给你看我的。

举个例子:在工作中,我访问了一个客户,需要访问他网络上一个windows共享上的一些数据。如何在不显示笔记本电脑上存储的机密信息的情况下执行此操作?

我知道如何禁用我的主文件夹的共享,但还有其他共享无法禁用,它们显然被称为“管理共享”,并且可能容易受到网络上的人类或病毒的攻击。

在控制台中键入 net share

此外,对这些管理共享和我的主文件夹的访问受我在那台计算机上的密码保护,但我猜这可能是蛮力的。此外,有些人没有安全密码——甚至根本没有密码。

当使用 linux 访问 Windows 网络上的共享时,除非您明确要求(通过安装 samba 服务器等),否则 linux box 不会在网络上发布任何内容。

如何在 Windows 中获得相同的功能?

security windows network-share

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