Un administrateur système doit écrire de nombreux scripts pour surveiller et maintenir les systèmes. Pendant le script, vous devrez parfois faire référence à quelques commandes bash natives en perl. Ici, je vais vous montrer comment appeler ces commandes natives dans des scripts perl :
Étape 1 :Créer une sous-routine qui prend la commande, s'exécute et renvoie la sortie .
sub runcmd { local($cmd) = @_; alarm $timeout; $childkilled = 0; $childpid = open(CMD, "exec $cmd 2>&1 |"); return "failed to run \"$cmd\"\n" if (!defined($childpid)); local(@output) = ; local($output) = join("\n", @output); alarm 0; close(CMD); $output = $timeout_msg if ($childkilled); return $output; }
Étape 2 :Créez une autre sous-routine pour exécuter la commande réelle
#Get Date When script is started running sub getDate() { local($command)="date"; local($out)=&runcmd($command); $logout=$logout." Cron Started At :".$out."\n"; }
Etape 3 :Appelez le sous-programme comme ci-dessous :
&getDate();
Étape 4 :Redirigez la commande de sortie de date vers un fichier à l'aide de la commande ci-dessous :
open (LOG, ">>/var/log/logfile") || die "can't open logfile\n"; print LOG "$logout\n"; close (LOG) || die;