gpt4 book ai didi

linux - 在管道中使用时更改 gunzip 临时目录

转载 作者:太空狗 更新时间:2023-10-29 11:36:04 25 4
gpt4 key购买 nike

背景

我正在使用那些硬盘分区的 mysql 服务器:

...
/dev/vdd 99G 58G 39G 61% /var/lib/mysql
tmpfs 2,4G 0 2,4G 0% /tmp
...

我需要将 mysql 转储导入到我的数据库中。因此我使用以下语法:

gunzip -c sql_dump.sql.gz | mysql -uDB_USER -p DB_NAME

总的来说,这是可行的,但我的 sql_dump.sql.gz 文件在提取时将超过 5GB。

上面的命令将失败并显示 gzip:/home/.../sql_dump.sql.gz: No space left on device。我认为这与具有足够空间的 mysql 分区无关,而是与只有 2.4GB 可用空间的 /tmp 分区有关。

现在我确实继续将文件移动到具有足够可用空间的 /var/lib/mysql 分区。 gunzip 我的文件在那里,开始 mysql 导入,然后删除压缩和未压缩的文件。

问题

我在问自己是否有任何方法可以强制 gunzip 临时更改默认的临时目标位置,默认情况下为 /tmp/。所以 gunzip -c sql_dump.sql.gz | ... 提取文件时,不会将提取的文件存储在/tmp/ 下,而是存储在/var/lib/mysql 下。像这样:

export "GZIP_TMP_DIR=/var/lib/mysql/"
gunzip -c sql_dump.sql.gz | mysql -uDB_USER -p DB_NAME

这甚至可能吗?我进行了很多搜索,但找不到任何可以解决这一特定需求的东西。

最佳答案

在环境变量 TMPDIR 中设置所需的临时目录(参见 https://en.wikipedia.org/wiki/TMPDIR )。

关于linux - 在管道中使用时更改 gunzip 临时目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37812746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com