Limitar ao tempo de execução do script bash com interatividade?

1

Geralmente registro minhas etapas ao implantar sistemas e frequentemente duplico o servidor durante os testes iniciais. Por exemplo, se eu for longe demais nas ervas daninhas enquanto estiver testando, simplesmente prefiro arranhar o servidor depois que obtiver sucesso. Então, com bastante facilidade, posso voltar àquele ponto menos os passos extras que eu anteriormente tomei que eram desnecessários. Não consigo dormir direito se sinto que tenho dependências desnecessárias por aí.

Ainda não encontrei um limite, mas há algum ponto em que a BASH desista de esperar que eu termine. Por exemplo, se eu criar um script deploy.sh que contenha um monte de comandos incluindo a edição de arquivos com nano, o bash irá esperar infinitamente que eu edite o arquivo e salve as alterações e continue com o script? Como eu posso parar no meio do roteiro e dormir um pouco para voltar a ele?

Isto é o equivalente a pegar o histórico bash e marcá-lo para ser usado mais tarde. Na verdade não significava tomar o lugar de um roteiro real com condicionais.

exemplo deploy.sh

# Fix hosts file
sudo nano /etc/hosts

# Update System
sudo apt-get update ; sudo apt-get -y dist-upgrade

# Install Java from repo
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java8-installer

# Test JAVA
java -version

# Install build-essential, git
sudo apt-get -y install build-essential git

# Generate SSH key for github
ssh-keygen -t rsa -b 4096 -C "[email protected]"

# Check on ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

# Add SSH to github keys
cat ~/.ssh/id_rsa.pub

# Verify SSH access to github
ssh -T [email protected]

# Elastic Search Install
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list
sudo apt-get update
sudo apt-get -y install elasticsearch

# Edit elasticsearch config (adjust cluster name, node name, and data path)
sudo nano /etc/elasticsearch/elasticsearch.yml

# Change paths ownership to elasticsearch
sudo chown -R elasticsearch:elasticsearch /mnt/data/elasticsearch

# Restart elasticsearch
sudo service elasticsearch restart

# Add elasticsearch to boot
sudo update-rc.d elasticsearch defaults 95 10

# Install Node 5.x
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs
    
por bc2946088 03.06.2016 / 13:54

1 resposta

2

nano não tem tempo limite, o único tempo limite até agora foi definido em ssh e sftp login tentativas. Assim como o login você não parar diretamente comeu o ponto onde você tem que digitar credenciais de login, você está salvo.

    
por Videonauth 03.06.2016 / 14:20