小编Ome*_*gan的帖子

如何使用 flock 和文件描述符来锁定文件并写入锁定的文件?

我有一个 bash 脚本,它发出一个 cURL 请求并将输出写入一个名为resp.txt. 我需要创建一个独占锁,以便我可以写入该文件,而不必担心多个用户同时运行脚本和编辑文本文件。

这是我希望锁定文件、执行请求并写入文本文件的代码:

(
flock -e 200
curl 'someurl' -H 'someHeader' > resp.txt
) 200>/home/user/ITS/resp.txt
Run Code Online (Sandbox Code Playgroud)

这是解决这个问题的正确方法吗?我的实际脚本比这长一点,但是当我将flock语法添加到 bash 脚本时,它似乎会中断。

如果有人能解释这些文件描述符是如何工作的,并让我知道我是否正确锁定了文件,那就太棒了!

linux bash

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

如何使用 systemd-networkd 设置网络子网掩码?

systemdsystemd-networkd服务使得用户安装使用一个网络.network单元文件。但是,就官方手册页 ( man systemd.network) 中的说明而言,它允许配置静态 IP 地址,但未指定如何设置子网掩码。如何使用该systemd机制做到这一点?

systemd systemd-networkd

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

如何分配 inode 编号

两个已知事实:

  1. 在 linux 中,将文件从同一文件系统上的一个位置移动到另一个位置不会更改 inode(文件保持在“同一位置”,仅更改了涉及的目录)
  2. 然而,复制会生成一个真正的新文件,带有一个新的 inode。

有了这些信息,我观察到以下现象:

$ ls -li /tmp/*.db
1452722 -rw-r--r-- 1 omerda omerda 245760 Jul  7 12:33 /tmp/vf4.db
$
$ cp /tmp/vf4.db /tmp/vf4.2.db
$ ls -li /tmp/*.db # New inode introduced
1452719 -rw-r--r-- 1 omerda omerda 245760 Jul  7 12:38 /tmp/vf4.2.db
1452722 -rw-r--r-- 1 omerda omerda 245760 Jul  7 12:33 /tmp/vf4.db
$
$ mv /tmp/vf4.2.db /tmp/vf4.db
$ ls -li /tmp/*.db
1452719 -rw-r--r-- 1 omerda omerda 245760 Jul  7 12:38 /tmp/vf4.db
$
$ cp /tmp/vf4.db /tmp/vf4.2.db
$ …
Run Code Online (Sandbox Code Playgroud)

linux filesystems inode

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

标签 统计

linux ×2

bash ×1

filesystems ×1

inode ×1

systemd ×1

systemd-networkd ×1