linux - 如何在 shell 脚本中实现共享内存?

标签 linux bash shell shared-memory

我有一个 shell 脚本,它被触发并在 linux 系统上一次又一次地定期运行,比如每 45 分钟一次。我需要在这个 shell 脚本的不同运行之间共享某些信息。我可以通过哪些不同的方式来实现它?这有点类似于进程间通信。我不想使用磁盘 I/O,所以不创建文件。我可以在内存中创建一些东西,并可以让它在一段时间内保持活力,例如早上 7 点到中午 12 点等。在此期间,脚本运行了 20 次,并一次又一次地使用/填充该数据结构。脚本在下次运行时需要使用上一次运行中填充的值。

基本上我正在寻找像数据库一样工作但速度更快并且修改成本更低的操作的东西。所以我会把我的数据保存在那个数据库里,所​​有不同的脚本运行都会读取/修改那个东西,而不是一次又一次地去数据库。/dev/shm 看起来不错,除非有人建议更好的选择。

最佳答案

I dont want to use disk I/O so no file creation.

如果您使用的是 Linux 系统,请在 /dev/shm 中创建一个文件。该目录下存放的文件只存放在共享内存中;它们没有写入磁盘。

根据您的系统配置,/tmp 和/或 /var/tmp 可以作为 tmpfs 挂载,使它们的行为相同。您的里程可能会有所不同。

关于linux - 如何在 shell 脚本中实现共享内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50849183/

相关文章:

linux - shell 脚本 : replacing and adding characters in a string

python - 程序负责在从 Keras 加载 InceptionV3 时显示 ETA

linux - 在 Linux 上,如何伪造域的 MX 记录?

linux - `./example.sh` 和 `sh example.sh` 有什么区别

linux - 使用 sed 命令替换文件内容

bash - 如何创建一个用固定字符串初始化的固定大小的文件?

bash - 在 shell 脚本中匹配所有带有井号(#)的单词

linux - 在 SFTP 中传输文件之前检查远程目录大小

regex - AWK 为逗号和引号设置多个分隔符

linux - 自动检测文件更改并通过 S3 同步