Scripts - това е просто
Всяка нова Linux системен администратор, рано или късно се сблъскват с такова нещо като "сценарий", независимо дали това да бъде един от скриптове за стартиране като /etc/rc.d/rc или писмено от възложителя на софтуер конфигурацията на конфигурирате скрипта. В тази статия ще се опитам да покажа, че в писането на скрипт не е нещо, от обикновената и съвсем в състояние дори начинаещ в света на Linux.
Да започнем с това, че видим какво се крие зад английските термини и черупка сценария. Shell. или черупка, тъй като този термин понякога се превежда - команден интерпретатор, интерфейсът между операционната система на потребителя и и неговото ядро. Но освен това, той е и мощен език за програмиране и скриптове. Той съдържа служебните си реч и контролни структури, и ви позволява да се пишат програми за нея. Такава програма на скриптов език, наречен скрипт. могат да се комбинират системни функции и команди на операционната система, както и външни инструменти, създаване на мощен инструмент за системна администрация.
Отправната точка
Така че, на първо място, ние трябва да разберем структурата на сценария. Това не е голяма работа. Като цяло, прост скрипт - просто прехвърля системни команди. Например:
Тези команди са обединени в един файл. Но обвивката трябва да знае, че той трябва да се справят с този файл, а не само да се чете съдържанието му. Защото това е специален дизайн: #!
Ние ще се фокусира върху Bash, Bourne-Отново черупка. Тази обвивка е инсталиран по подразбиране в почти всички Linux-системи, и / хамбар / од се отнася до него. В края на скрипта, казва официален дума изход.
Въоръжени с това знание, ние можем да напишете първата нашия скрипт:
Запазете този файл като tutor1.sh. Изпълнете командата да се направи скрипт изпълним.
резултат изпълнението на скрипта ще бъде:
Обръщаме се към по-сериозно.
Сега, след като сме се научили да пишат прости скриптове, че е време да се премине към сериозни въпроси: писане на скриптове за архивиране.
Първо най-важното, което трябва да се определи - резервно копие на това, което ние ще направим. Затова нашия скрипт би трябвало да може да се работи с командния ред. Аргументи на командния ред са дадени след името на скрипта през пролуката: somescript arg1 arg2 arg3. Сценарият приема аргументи от номера на пътуването, така че ние ще използваме вида на строителството # 36; nomer_argumenta, т.е. # 36 1, 36 # 2, # 36; 3. # 36; - е маска, която ще ни е необходима при работа с променливи. Променливите в сценария са изложени под формата на променлива име = стойност. Ние ще използваме променливи MAXPARAMS за определяне на максималния брой опции за командния ред, backupfile да зададете име на архив, BackupDir за резервно копие на папката, която ще направим и ARCHIVEDIR папката, където ще сложим файла. Най-важната част от сценария ще търси отбори и архивиране на всички файлове и папки, намиращи се в това:
Нека да видим какво правят тези команди. намерите търсения текущата директория (както е видно от първия аргумент е ".") на всички файлове и дава пълния път до нея (-print0). Тези пътища са пренасочени към командата катран, която събира всички файлове в една. Тогава софтуерна команда ние архивирате получената катран-файла. Command> / сътрудничество / нула е полезно, ако архивирането на голям брой файлове. В този случай, техните имена и пълния път до него, не се извежда на конзолата.
Следващата стъпка е да се предостави съвети за потребителя как да използвате скрипта, освен ако не допускаме грешки.
Например, този дизайн
кажа, че потребителят има недостатъчен брой аргументи на командния ред. Ако [условие]. Fi определя условно конструкцията. # 36; # -lt "# 36; MAXPARAMS" Разрешение проверява броя на параметрите, а ако този брой е по-малък от MAXPARAMS, потребителят ще видите съобщение за невалидна стойност. Exit 0 ще доведе до сценария, да прекратят работа, без да дава код за грешка. По същия начин проверява надвишава допустимия брой параметри, но вместо това ли (по-малко след това - по-малко от) трябва да определи GT (по-голяма след това - напред). Сега, след като основните моменти от сценария обяснени, можете да преминете към пълната версия на това:
Послепис Много благодаря загрозяват със своите коментари и съвети.