Melhorando o mktemp

1

Eu estou querendo saber como melhorar melhor o mktemp para uso com contêineres ou sistemas de arquivos criptografados.

O problema com o qual estou lidando é que gostaria que meus shell scripts armazenassem arquivos temporários dentro do sistema de arquivos que contém o diretório de trabalho, se possível.

O comportamento normal de mktemp parece ser o uso de um caminho raiz especificado em uma variável de ambiente ou /tmp . Isso, no entanto, rotineiramente vazará dados temporários para locais não criptografados se eu estiver trabalhando com arquivos dentro de contêineres criptografados.

A idéia é primeiro verificar a presença de um diretório tmp no ponto de montagem do sistema de arquivos atual e usar /tmp apenas como último recurso. Como posso de forma confiável (e eficiente) perceber isso?

Editar

Uma maneira possível de identificar o diretório de montagem de um determinado caminho é o seguinte

dir='realpath [path]'; 
res=1; 
while [ $res -ne 0 ]; do 
  dir="${dir%/*}"; 
  mountpoint -q "$dir/"; 
  res=$?; 
done; 
echo "$dir";

Não tenho certeza, no entanto, se é o mais eficiente.

    
por highsciguy 05.01.2018 / 22:48

1 resposta

0

Você pode especificar qualquer diretório para mktemp ; usando a opção -p ou definindo um TMPDIR diferente.

-p temp-dir, --tmpdir=temp-dir
          temp  directory  for  the  file.  This option is a member of the
          tmpdir class of options.

          If this option is not provided, mktemp will use the  environment
          variable  TMPDIR to find a suitable directory.  If these are not
          available, it will fall back to ~/tmp  or  /tmp.   A  <file-pat>
          command line argument containing a directory component will con-
          flict with this option.

Por exemplo:

#!/bin/bash
TMPDIR='pwd'
mktemp
    
por 05.01.2018 / 22:53

Tags