Per Imparare qualcosa devi farlo, senza la paura di non riuscire. Credo nella praticità e quindi ti accompagnerò nel mondo pratico del linguaggio di scripting.
Questo articolo è un'estensione del nostro Primo articolo Comprendere la shell Linux e gli script di shell di base - Parte I, dove ti abbiamo dato un assaggio di Scripting, continuando che non ti deluderemo in questo articolo.
#!/bin/bash. MAX_NO=0. echo -n "Inserisci il numero tra (da 5 a 9): " leggi MAX_NO. Se! [ $MAX_NO -ge 5 -a $MAX_NO -le 9 ]; quindi echo "WTF... Chiedo di inserire un numero compreso tra 5 e 9, Riprova" uscita 1. fi. chiaro. per (( i=1; io<=MAX_NO; i++ )) fai per (( s=MAX_NO; s>=i; s-- )) do echo -n " " done for (( j=1; j<=i; j++ )) do echo -n " ." done echo "" done ###### Seconda fase ###################### for (( i=MAX_NO; io>=1; io-- )) fai per (( s=i; s<=MAX_NO; s++ )) do echo -n " " done for (( j=1; j<=i; j++ )) do echo -n " ." fatto eco "" fatto. echo -e "\n\n\t\t\t Ogni volta che hai bisogno di aiuto, Tecmint.com è sempre lì"
La maggior parte di quanto sopraparole chiave'sarebbe noto a te e la maggior parte di loro si spiega da sé. per esempio., MAX imposta il valore massimo della variabile, for è un ciclo e qualsiasi cosa all'interno del ciclo continua a essere eseguita ancora e ancora finché il ciclo non è valido per un dato valore di input.
[[e-mail protetta] ~]# chmod 755 Special_Pattern.sh. [[e-mail protetta] ~]# ./Special_Pattern.sh. Immettere il numero tra (da 5 a 9): 6... .... .... .... .... .... .... .... .... .... ... Ogni volta che hai bisogno di aiuto, Tecmint.com è sempre lì
Se sei un po' a conoscenza di qualsiasi linguaggio di programmazione, imparare lo script di cui sopra non è difficile, anche se sei nuovo nel calcolo, nella programmazione e in Linux non sarà molto difficile.
Scarica Special_Pattern.sh
Chi dice, Linux è incolore e noioso, salva i codici qui sotto in qualsiasi cosa [punto] SH, rendilo eseguibile ed eseguilo, non dimenticare di dirmi com'era, pensa a cosa puoi ottenere, implementandolo da qualche parte.
#!/bin/bash. clear echo -e "33[1m Hello World" # effetto audace. echo -e "33[5m Lampeggio" # effetto lampeggiante. echo -e "33[0m Ciao mondo" # tornare alla normalità. echo -e "33[31m Ciao mondo" # Colore rosso. echo -e "33[32m Ciao mondo" # Colore verde. echo -e "33[33m Ciao mondo" # Vedi rimanente sullo schermo. echo -e "33[34m Ciao mondo" echo -e "33[35m Ciao mondo" echo -e "33[36m Ciao mondo" echo -e -n "33[0m" # tornare alla normalità. echo -e "33[41m Ciao mondo" echo -e "33[42m Ciao mondo" echo -e "33[43m Ciao mondo" echo -e "33[44m Ciao mondo" echo -e "33[45m Ciao mondo" echo -e "33[46m Ciao mondo" echo -e "33[0m Ciao mondo"
Nota: Non preoccuparti del codice colore ora, quelli importanti per te saranno sulla tua lingua, gradualmente.
Avvertimento: Il tuo terminale potrebbe non avere la possibilità di lampeggiare.
[[e-mail protetta] ~]# chmod 755 Colorfull.sh. [[e-mail protetta] ~]# ./Colorfull.sh Ciao mondoBattito di cigliaCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondoCiao mondo
Scarica Colorfull.sh
Questo script crittograferà a file (ricordare? directory/autista/…. tutto è trattato come file, in Linux). L'attuale limitazione dello script sopra è che non supporta il completamento automatico del nome usando TAB. Inoltre, è necessario posizionare lo script e il file da crittografare nella stessa cartella. Potrebbe essere necessario installare "pinentry-gui”, usando yum o adatto il pacchetto, se richiesto.
[[e-mail protetta] ~]# yum install pinentry-gui. [[e-mail protetta] ~]# apt-get install pinentry-gui
Crea un file chiamato "Encrypt.sh" e posiziona il seguente script, rendilo eseguibile ed eseguilo come mostrato.
#!/bin/bash. echo "Benvenuto, sono pronto a crittografare un file/cartella per te" echo "attualmente ho una limitazione, posizionami nella stessa cartella, dove è presente un file da crittografare" echo "Inserisci il nome esatto del file con estensione" leggere il file; gpg -c $file. echo "Ho crittografato il file con successo..." echo "Ora rimuoverò il file originale" rm -rf $file
[[e-mail protetta] ~]# chmod 755 Encrypt.sh. [[e-mail protetta] ~]# ./Encrypt.sh Benvenuto, sono pronto a crittografare un file/cartella per te. attualmente ho una limitazione, Posizionami nella stessa cartella, dove è presente un file da crittografare. Inserisci il nome esatto del file con estensione package.xml ┌─────────────────────────────────────── ──────────────┐ │ Inserisci passphrase │ │ │ │ │ │ Passphrase *******_________________________________ │ │ │ ││ └──────────────────────────────────────────────── ─────┘ Per favore reinserisci questa passphrase ┌───────────────────────────────────────────────── ────┐ │ Reinserisci questa passphrase │ │ │ │ Passphrase ********________________________________ │ │ │ │ │ └──────────────────────────────────────────────── ─────┘ Ho crittografato il file con successo... Ora rimuoverò il file originale.
gpg -c: Questo crittograferà il tuo file, usando una passkey aka parola d'ordine. In questo processo di apprendimento non avresti mai pensato che l'effettivo processo di apprendimento potesse essere così facile. Quindi, dopo aver crittografato un file, di cosa hai bisogno? Ovviamente! decrittografare il file. E voglio che tu: lo studente, il lettore scriva tu stesso lo script di decrittazione, non preoccuparti, non ti lascio nel mezzo, voglio solo che tu tragga qualcosa da questo articolo.
Nota: gpg -d nomefile.gpg > nome del file è ciò che devi implementare nel tuo script di decrittazione. Puoi pubblicare il tuo script in un commento in caso di successo, in caso contrario puoi chiedermi di scriverlo per te.
Scarica Encrypt.sh
Il controllo dell'utilizzo del server è uno dei compiti importanti di un amministratore e un buon amministratore è uno che sa come automatizzare le sue attività quotidiane. Di seguito è riportato lo script che fornirà molte di queste informazioni sul tuo server. Controlla tu stesso.
#!/bin/bash data; echo "uptime:" uptime echo "Attualmente connesso:" w echo "" echo "Ultimi accessi:" last -a |head -3 echo "" echo "Utilizzo del disco e della memoria:" df -h | xargs | awk '{print "Gratuito/totale disk: " $11 " / " $9}' free -m | xargs | awk '{print "Memoria libera/totale: " $17 " / " $8 " MB"}' echo "" start_log=`head -1 /var/log /messages |cut -c 1-12` oom=`grep -ci kill /var/log/messages` echo -n "Errori OOM da $start_log :" $oom echo "" echo "" echo "Utilizzo e processi più costosi:" top -b |head -3 echo top -b |head -10 |coda -4 echo "" echo "Porte TCP aperte:" nmap -p- -T4 127.0.0.1 echo "" echo "Connessioni correnti:" ss -s echo "" echo "processi:" ps auxf --width=200 echo "" echo "vmstat:" vmstat 1 5
[[e-mail protetta] ~]# chmod 755 Server-Health.sh. [[e-mail protetta] ~]# ./Server-Health.sh Tue Jul 16 22:01:06 IST 2013. uptime: 22:01:06 up 174 giorni, 4:42, 1 utente, carico medio: 0,36, 0,25, 0,18. Attualmente connesso: 22:01:06 su 174 giorni, 4:42, 1 utente, carico medio: 0,36, 0,25, 0,18. UTENTE TTY DA [e-mail protetta] IDLE JCPU PCPU CHE COSA. tecmint pts/0 116.72.134.162 21:48 0.00s 0.03s 0.03s sshd: tecmint [priv] Ultimi accessi: tecmint pts/0 mar Jul 16 21:48 ancora loggato 116.72.134.162. tecmint pts/0 mar lug 16 21:24 - 21:43 (00:19) 116.72.134.162. Utilizzo del disco e della memoria: disco libero/totale: 292 G / 457 G. Memoria libera/totale: 3510 / 3838 MB. Errori OOM dal 14 luglio 03:37: 0. Utilizzo e processi più costosi: top - 22:01:07 su 174 giorni, 4:42, 1 utente, carico medio: 0,36, 0,25, 0,18. Compiti: 149 in totale, 1 in esecuzione, 148 addormentati, 0 fermi, 0 zombi. Cpu (s): 0.1%us, 0.0%sy, 0.0%ni, 99.3%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDO 1 radice 20 0 3788 1128 932 S 0.0 0.0 0:32.94 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:14.07 migrazione/0
Nota: ti ho fornito lo script che fornisce l'output nel terminale stesso, che ne dici di ottenere l'output in un file per riferimento futuro. Implementalo usando l'operatore di reindirizzamento.
Scarica Server-Health.sh
Che ne dici di ricevere un'e-mail quando il disco viene utilizzato nella partizione? PARTE è più grande del Massimo consentito, è uno script salvavita per gli amministratori web con poche modifiche.
MASSIMO=95. [e-mail protetta]PARTE=sda1. USE=`df -h |grep $PART | awk '{ print $5 }' | cut -d'%' -f1` if [ $USE -gt $MAX ]; then echo "Percentuale utilizzata: $USE" | mail -s "Spazio esaurito su disco" $EMAIL. fi
Nota: Rimuovi “UTENTE” con il tuo nome utente. Puoi controllare la posta usando usando 'posta' comando.
Scarica Check-Disk-Space.sh
La scrittura e la programmazione di script sono oltre i confini, qualsiasi cosa può essere implementata come richiesto. Per ora è tutto, nel mio prossimo articolo ti darò alcuni diversi tipi di scripting. Fino ad allora stai calmo e sintonizzato, divertiti.