كود لعمل باك اب للمستخدمين من ملف etc/passwd
شرح السكربت :
1- إستدعاء ال DBI Library
2 -عمل اوبجكت للكونكشن وهيتطلب منك 3 اشياء
DBI ال Library الرئيسية ، و MySQL وهى نوع قاعدة البيانات و اسم الDataBase
وال User name وال Password
3 - عمل File handler لملف etc/passwd
4- تخزين المحتوى فى array
5- عمل Iteration على كل سطر وعمل Split لل Colons اللى بتفصل بين كل Column وتخزين كل واحد منها فى Variable
6- تخزين كل عنصر خلال ال Iteration فى الداتا بيز بإستخدام Insert statment
7-غلق ال File Handler
شرح السكربت :
1- إستدعاء ال DBI Library
2 -عمل اوبجكت للكونكشن وهيتطلب منك 3 اشياء
DBI ال Library الرئيسية ، و MySQL وهى نوع قاعدة البيانات و اسم الDataBase
وال User name وال Password
3 - عمل File handler لملف etc/passwd
4- تخزين المحتوى فى array
5- عمل Iteration على كل سطر وعمل Split لل Colons اللى بتفصل بين كل Column وتخزين كل واحد منها فى Variable
6- تخزين كل عنصر خلال ال Iteration فى الداتا بيز بإستخدام Insert statment
7-غلق ال File Handler
كود:
#!/usr/bin/perl -w use strict; use DBI; use diagnostics; #step1 - create connection objection . my $dsn = 'DBI:mysql:backupDB'; my $user = 'adam'; my $password = 'secret'; my $conn = DBI->connect($dsn,$user,$password) || die "Error connecting" . DBI->errstr; my $file = "/etc/passwd"; open (han1, "$file") || die "error opening file: $!"; my @newrecords = <han1>; foreach (@newrecords) { my @columns = split /:/; my $username = $columns[0]; my $x = $columns[1]; my $userid = $columns[2]; my $groupid = $columns[3]; my $realname = $columns[4]; my $homedir = $columns[5]; my $shellpath = $columns[6]; $conn->do("insert into users(username,x,userid,groupid,realname,homedir,shellpath) values('$username','$x','$userid','$groupid','$realname','$homedir','$shellpath')") || die "error preparing query" . $conn->errstr; close(han1); }
تعليق