Mantenha os dados do arquivo sempre disponíveis para o Bash, sem execução repetida (também após a reinicialização)

0

Eu tenho um arquivo chamado ~/myScripts/assignments.sh , que contém várias atribuições, como variáveis e aliases. Aqui está um gostinho desse arquivo:

drt="/var/www/html"
rss="/etc/init.d/php*-fpm restart && systemctl restart nginx.service"

alias drt="cd ${drt}"
alias rss="${rss}"

Eu uso essas atribuições com frequência desde o momento em que terminei de instalar o sistema operacional, especialmente para escrever scripts mais simples para instalação, configuração e manutenção do meu servidor da Web e software adjacente.

Assim, é vital que este arquivo seja sempre exportado , que seus dados estarão sempre disponíveis em todas as sessões de Bash, imediatamente após o início de qualquer sessão de Bash (também após reboot ).

Para conseguir isso, pensei no seguinte script:

source ~/myScripts/assignments.sh # Immediate availability;
printf "\n%s" "source ~/myScripts/assignments.sh" >> ~/.profile
cat > "cron_daily.sh" <<< "source ~/myScripts/assignments.sh"

crontab <<-"CRONTAB"
    0 0 * * * ~/myScripts/cron_daily.sh # Permanent availability (after the one minute gap);
CRONTAB

Qual será uma boa abordagem para alcançar o estado que descrevi acima?

Atualizar

O motivo pelo qual eu pensava em evitar o sourcing do arquivo, em seguida, adicionar source ~/myScripts/assignments.sh dentro do bash.bashrc é que eu vi alguns devops relutantes em obter bash.bashrc em geral. Embora, quando o arquivo não é personalizado, ou tenha apenas uma pequena alteração, geralmente não é um problema.

    
por user9303970 08.02.2018 / 09:58

1 resposta

7

Se as atribuições forem necessárias para "todas" as sessões de bash, basta colocar o arquivo em algum lugar como /etc/assignments e obtê-lo globalmente em /etc/bash.bashrc .

Anexe isso em /etc/bash.bashrc :

source /etc/assignments

Dessa forma, você tem todas as suas definições disponíveis em todas as sessões bash, para cada usuário, e pode manter as informações em um arquivo separado.

    
por 08.02.2018 / 10:57