我必須在Perl中編寫一個腳本來輸出特定目錄中的最後一個備份。使用Perl在目錄中查找最後一個備份文件
對於離
父目錄是/home/Backup/
在/home/Backup/windows
我有如
Windows_Server_A_20120901
Windows_Server_A_20120902
Windows_Server_A_20120903
Windows_Server_B_20120901
Windows_Server_B_20120902
Windows_Server_B_20120903
Windows_Server_XZ_20120903
Windows_Server_XZ_20120901
Windows_Server_XZ_20120902
Windows_Server_XZ_20120903
以下文件的輸出應該
Windows_Server_A_20120903
Windows_Server_B_20120903
Windows_Server_XZ_20120903
在/home/Backup/Unix
爲如我有下面這些翼文件
Unix_Server_A_20120901.gz
Unix_Server_A_20120902.gz
Unix_Server_A_20120903.gz
Unix_Server_B_20120901.gz
Unix_Server_B_20120902.gz
Unix_Server_B_20120903.gz
Unix_Server_XY_20120901.gz
Unix_Server_XY_20120902.gz
Unix_Server_XY_20120903.gz
此輸出應該是
Unix_Server_A_20120903.gz
Unix_Server_B_20120903.gz
Unix_Server_XY_20120903.gz
我剛纔坐2例在這裏。在/home/Backup/
我有其他的目錄,其他備份完成。
當然每個子目錄都會有一個子程序,因爲命名是不同的。
我是perl腳本的初學者。您的幫助將受到高度讚賞。
從我的角度來看,我想做Windows備份。
- 條(_20120901)的最後9個字符從文件名
- 然後搜索lastbackup即。
有人能指導我如何使用Perl來實現這一點。
謝謝大家。
我儘量在我想拿拿出上次備份
- 然後使用名稱調理服務器的唯一名稱的陣列中的步驟更加清晰一點( LS | grep的Windows_A |頭-1),以獲得thelast備份
- 我會改變directories.i不會讀/家裏所有的文件夾/備份
- 我也沒有噸的文件
Windows_Server_A(3次) Windows_Server_B(3次) Windows_Server_XY(3次)
還當我指定我得到的全路徑名的路徑,我怎麼能刪除它
!/usr/bin/perl
use strict;
use warnings;
my @files = glob("Win*");
##my @files = glob("/home/backup/windows/Win*");
foreach my $file (@files) {
$file = substr($file,0,-9);
print "$file\n";
}
exit 0;
你能請指導並告知我所採取的步驟是否不合適。
謝謝
閱讀有關如何'讀取文件contents'在Perl,也看看所有文件'perl正則表達式'。 – RanRag