⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messages-expire.pl

📁 asterisk 是一个很有知名度开源软件
💻 PL
字号:
#!/usr/bin/perl## Script to expire voicemail after a specified number of days# by Steve Creel <screel@turbs.com># # Directory housing the voicemail spool for asterisk$dir = "/var/spool/asterisk/voicemail";# Context for which the script should be running$context = "default";# Age (Delete files older than $age days old)$age = 31;# Age for unheard messages (Defaults to same age for all messages)# Set to 0 to not delete unheard messages$unheardage = $age;# Delete all files older than $age and $unheardage# (named msg????.??? to get the audio and txt files, # but we don't delete greetings or the user's name)if($age==$unheardage) {  # Save time by doing one find if we're treating everything the same  system('find '.$dir.'/'.$context.' -name msg????.??? -mtime +'.$age.' -exec rm {} \; -exec echo Deleted {} \;');} else {  # Find everything not in a folder called 'INBOX' and delete it after $age days  system('find '.$dir.'/'.$context.' -path \'*INBOX*\' -prune -o -name msg????.??? -mtime +'.$age.' -exec rm {} \; -exec echo Deleted {} \;');  # If unheardage is set to 0, we won't delete any unheard messages  if($unheardage > 0) {    # Delete things that are in a folder called INBOX after $unheardage days    system('find '.$dir.'/'.$context.' -path \'*INBOX*\' -name msg????.??? -mtime +'.$unheardage.' -exec rm {} \; -exec echo Deleted {} \;');  }}# For testing - what number to we start when we renumber?$start = "0";# Rename to msg and a 4 digit number, 0 padded.$fnbase = sprintf "msg%04d", $start;# Make $dir include the context too$dir.="/".$context;( -d $dir ) || die "Can't read list of mailboxes ($dir): $!\n"; @mailboxes = `ls -A1 $dir`;chomp(@mailboxes);$save_fnbase = $fnbase;foreach $mailbox (@mailboxes) {  ( -d $dir."/".$mailbox) || die "Can't read list of folders (".$dir."/".$mailbox."): $!\n";  @folders = `ls -A1 $dir/$mailbox`;  chomp(@folders);  foreach $folder (@folders) {   if (-d $dir."/".$mailbox."/".$folder) {    ( -d $dir."/".$mailbox."/".$folder) || die "Can't read list of messages (".$dir."/".$mailbox."/".$folder.") $!\n";    @files = `ls -A1 $dir/$mailbox/$folder/`;    # Sort so everything is in proper order.    @files = sort @files;    chomp(@files);    # If there is still (after deleting old files earlier in the    # script) a msg0000.txt, we don't need to shuffle anything    # in this folder.    if (-f $dir."/".$mailbox."/".$folder."/msg0000.txt") { next; }    foreach $ext (("WAV", "wav", "gsm", "txt")) {      # Reset the fnbase for each file type      $fnbase = $save_fnbase;      foreach $file (@files) {	if ( $file =~ /$ext/ ) {		chdir($dir."/".$mailbox."/".$folder."/") || die "Can't change folder: $!";		print "Renaming: ".$dir."/".$mailbox."/".$folder."/".$file." to ".$fnbase.".".$ext."\n";		rename($file, $fnbase.".".$ext) || die "Cannot rename: $!";		$fnbase++;	}      }    }   }  }}__END__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -