Správci systému a vývojáři potřebují občas použít mnoho složitých a zdlouhavých příkazů, aby mohli provést kritický úkol. Většina uživatelů zkopíruje tyto příkazy a výstup generovaný těmito příslušnými příkazy do textového souboru pro kontrolu nebo budoucí použití. Funkce „historie“ v shellu vám samozřejmě pomůže získat seznam příkazů používaných v minulosti, ale nepomůže vám získat výstup pro tyto příkazy.
Naštěstí existuje jednoduchý a časově nenáročný nástroj známý jako skript, který tuto práci udělá za vás. Příkaz skriptu vykonává svou činnost tiše tím, že běží na pozadí. Tento nástroj je nezbytný, pokud je pro servery, které spravujete, k dispozici pouze rozhraní příkazového řádku. Tento článek zkoumá jeho použití na příkladech.
Spuštění nahrávání aktivit terminálové relace
Do příkazového řádku zadejte „script“:
$ script
Spouštěcí zpráva „Skript byl spuštěn, soubor je strojopis“ se zobrazí následovně:
$ script Script started, file is typescript $
Nyní příkaz skriptu začne nahrávat uživatelské příkazy na pozadí, dokud uživatel nezadá „exit“ nebo nezastaví nahrávání stisknutím Control-D.
$ exit
Vše mezi „script“ a příkazem „exit“ je ve výchozím nastavení protokolováno do souboru v aktuálním adresáři. Spustíme několik příkazů a uvidíme, jak skript ukládá příkazy a odpovídající výstup následovně:
Na výše uvedeném snímku obrazovky je příkaz skriptu spuštěn s příkazy „free –h“ a „vmstat“. Jakmile uživatel ukončí nahrávání zadáním „exit“ nebo Ctrl+D, všechny provedené příkazy a jejich příslušný výstup se zaznamenají do souboru „typescript“ v aktuálním pracovním adresáři. Tak jednoduché, ale úžasné!
Záznam aktivit do souboru
Je dobrým zvykem uložit relaci nahrávání skriptu do uživatelem definovaného souboru s nějakým časovým razítkem, aby bylo užitečné na něj odkazovat později. K tomu je třeba spustit příkaz script zadáním požadovaného názvu souboru jako argument:$ script
Snímek obrazovky níže zachycuje, jak je záznam uložen v souboru protokolu dodaného uživatelem:
Připojení záznamových aktivit do existujícího souboru
Může být nutné přidat historii nahrávání do existujícího souboru protokolu. Za tímto účelem je třeba provést příkaz skriptu zadáním názvu souboru s volbou „-a“, která označuje operaci připojení.
$ script –a <existing_file_name>
Další možnosti lze získat z manuálové stránky skriptu.
Závěr
Nedoporučuje se spouštět příkaz script v neinteraktivních shellech. Příkaz script ukládá vše (řídící znaky jako odřádkování) do souboru protokolu. Pokud je nastavena proměnná prostředí SHELL, skript se rozvětvuje. Pokud není nastaveno, Bourne shell se považuje za výchozí. Pokud skriptu není poskytnut žádný název souboru protokolu, použije se výchozí soubor, typový skript. Příkaz script si stěžuje, pokud poskytnutý soubor protokolu nelze vytvořit. Pokud daný soubor protokolu již existuje a možnost „–a“ není použita, starý soubor bude přepsán.