Ho cercato una risposta a questa domanda ma non la trovo.script di auto-cancellazione della shell
Ho scritto un semplice script che esegue le impostazioni iniziali del server e mi piacerebbe rimuovere/disconnettersi dalla directory principale al completamento. Ho provato un certo numero di soluzioni su Google (ad esempio/bin/rm $ test.sh) ma lo script sembra sempre rimanere sul posto. È possibile? Di seguito è riportato il mio script finora.
#! /bin/bash
cd /root/
wget -r -nH -np --cut-dirs=1 http://myhost.com/install/scripts/
rm -f index.html* *.gif */index.html* */*.gif robots.txt
ls -al /root/
if [ -d /usr/local/psa ]
then
echo plesk > /root/bin/INST_SERVER_TYPE.txt
chmod 775 /root/bin/*
/root/bin/setting_server_ve.sh
rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
sed -i "75s/false/true/" /etc/permissions/jail.conf
exit 1;
elif [ -d /var/webmin ]
then
echo webmin > /root/bin/INST_SERVER_TYPE.txt
chmod 775 /root/bin/*
/root/bin/setting_server_ve.sh
rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
sed -i "67s/false/true/" /etc/permissions/jail.conf
break
exit 1;
else
echo no-gui > /root/bin/INST_SERVER_TYPE.txt
chmod 775 /root/bin/*
/root/bin/setting_server_ve.sh
rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
sed -i "67s/false/true/" /etc/permissions/jail.conf
break
exit 1;
fi
Se stai per giocare con uno script di auto-eliminazione, devi assicurarti di avere una copia di backup da qualche parte ogni volta prima di testarla. Oppure puoi sostituire 'rm' con' $ {RM: -/bin/rm} 'per i test. Il tuo codice piping 'rm' restituisce nel prossimo comando' rm' è piuttosto strano; 'rm' non legge dallo standard input a meno che non diventi interattivo (che non con' -rf'), né scrive sullo standard output. La ripetizione è cattiva. E non voglio in nessun modo che tu rimuova roba da/root sulle mie macchine. Inoltre, controlla che 'cd/root /' funzioni; 'cd/root/|| uscita 1'. –
Ciao Jonathan. Grazie mille per il tuo feedback. Come puoi dire, sono abbastanza nuovo in tutto questo. Stavo facendo un errore molto semplice con il posizionamento della parte rm test.sh ma ora funziona bene. Inoltre corretto il comando rm. Grazie ancora! – RFH
Perché è necessario eliminare questo script? Ad esempio, se si tratta di una cosa singola che si esegue su host remoti, è possibile eseguire 'ssh host
l0b0