понедельник, 30 мая 2011 г.
четверг, 26 мая 2011 г.
понедельник, 23 мая 2011 г.
среда, 18 мая 2011 г.
Скрипт для удаления большого кол-ва файлов
Скрипт для удаления большого кол-ва файлов из директории которую не удается открыть стандартными методами.
#!/usr/bin/perl
use strict;
#archive log dir last backslash required
my $ALOG_DIR="/usr/local/nagios/var/spool/perfdata/";
my $LOGFILE="/dev/shm/log.log";
#Keep archive logs for 300 days
my $KEEPTIME=300*24*3600;
#Current time
my $UTIME=time;
$UTIME=$UTIME - $KEEPTIME;
#Read archive log file dir into array
opendir DIR, $ALOG_DIR || die "can't opendir $ALOG_DIR: $!";
my @dir_arc_log=readdir DIR;
closedir DIR;
my $file;
foreach $file (@dir_arc_log) {
if ($file ne "." and $file ne "..") {
#Remove files
my @fstat = stat($ALOG_DIR . $file);
if (@fstat[9] < $UTIME) {
unlink $ALOG_DIR . $file;
#log
my $time=localtime(time);
#open ( OUT, "> $LOGFILE" ) or die "Cannot open file: $LOGFILE";
open (LOG,">> $LOGFILE") or die "Cannot open file $file: $LOGFILE";
printf LOG "\[$time\] $file @fstat[9]\n";
#printf LOG "\[$time\] $file @mtime";
close LOG;
#!/usr/bin/perl
use strict;
#archive log dir last backslash required
my $ALOG_DIR="/usr/local/nagios/var/spool/perfdata/";
my $LOGFILE="/dev/shm/log.log";
#Keep archive logs for 300 days
my $KEEPTIME=300*24*3600;
#Current time
my $UTIME=time;
$UTIME=$UTIME - $KEEPTIME;
#Read archive log file dir into array
opendir DIR, $ALOG_DIR || die "can't opendir $ALOG_DIR: $!";
my @dir_arc_log=readdir DIR;
closedir DIR;
my $file;
foreach $file (@dir_arc_log) {
if ($file ne "." and $file ne "..") {
#Remove files
my @fstat = stat($ALOG_DIR . $file);
if (@fstat[9] < $UTIME) {
unlink $ALOG_DIR . $file;
#log
my $time=localtime(time);
#open ( OUT, "> $LOGFILE" ) or die "Cannot open file: $LOGFILE";
open (LOG,">> $LOGFILE") or die "Cannot open file $file: $LOGFILE";
printf LOG "\[$time\] $file @fstat[9]\n";
#printf LOG "\[$time\] $file @mtime";
close LOG;
понедельник, 16 мая 2011 г.
Запуск Exchange скрипта по расписанию
Для запуска PS1 скрипта Exchnage с помощью планировщика, необходимо:
1. Выполнить на почтовом сервере: Set-ExecutionPolicy RemoteSigned (для пользователя под которым будет исполняться скрипт).
2. Добавить в начало скрипта строку Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin (она будет вызывать соответствующую оснастку которая позволяет работать со специфическими командлетами Exchange).
3. Создать bat-файл со следующей командой: Powershell -command "& { [путь к скрипту] }"
http://exchangeshare.wordpress.com/2008/12/08/how-to-schedule-powershell-script-for-an-exchange-task/
1. Выполнить на почтовом сервере: Set-ExecutionPolicy RemoteSigned (для пользователя под которым будет исполняться скрипт).
2. Добавить в начало скрипта строку Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin (она будет вызывать соответствующую оснастку которая позволяет работать со специфическими командлетами Exchange).
3. Создать bat-файл со следующей командой: Powershell -command "& { [путь к скрипту] }"
http://exchangeshare.wordpress.com/2008/12/08/how-to-schedule-powershell-script-for-an-exchange-task/
Welcome Message в Exchange 2007
Для отправки "приветственного" сообщения всем новым пользователям организации можно использовать следующий скрипт автоматически запускаемый планировщиком:
$NewUsers = Get-Mailbox -ResultSize Unlimited | Where {($_.WhenCreated -gt (get-date).addhours(-24))}
$Body=get-content "[путь к HTML шаблону письма]" | Out-String
foreach ($NewUser in $NewUsers)
{
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$SmtpClient.Host = "mailserver.domain.com"
$mailmessage.from = ("administrator@domain.com")
$Recipient = $newuser.WindowsEmailAddress.toString()
$mailmessage.To.Add($Recipient)
$mailmessage.Subject = “Welcome”
$mailmessage.IsBodyHTML = $True
$mailmessage.Body = $Body
$smtpclient.Send($mailmessage)
}
http://social.technet.microsoft.com/Forums/en-US/exchangesvrgeneral/thread/7d9efed5-11a8-4eb9-a9e8-329cab57ef2d
$NewUsers = Get-Mailbox -ResultSize Unlimited | Where {($_.WhenCreated -gt (get-date).addhours(-24))}
$Body=get-content "[путь к HTML шаблону письма]" | Out-String
foreach ($NewUser in $NewUsers)
{
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$SmtpClient.Host = "mailserver.domain.com"
$mailmessage.from = ("administrator@domain.com")
$Recipient = $newuser.WindowsEmailAddress.toString()
$mailmessage.To.Add($Recipient)
$mailmessage.Subject = “Welcome”
$mailmessage.IsBodyHTML = $True
$mailmessage.Body = $Body
$smtpclient.Send($mailmessage)
}
http://social.technet.microsoft.com/Forums/en-US/exchangesvrgeneral/thread/7d9efed5-11a8-4eb9-a9e8-329cab57ef2d
среда, 11 мая 2011 г.
Статистика ActiveSync устройств
Для получения статистики по всем ActiveSync устройствам с помощью который происходило подключение к п\я Exchange необходимо выполнить следующую команду (лучше выгрузить в файл):
$Mailbox = Get-CASMailbox | where {$_.HasActiveSyncDevicePartnership –eq $true}
$Mailbox | foreach {$_.Name; Get-ActiveSyncDeviceStatistics –Mailbox $_.Identity} | ft Name,DeviceUserAgent,LastSuccessSync
http://msexchangeexpert.ru/?p=167
$Mailbox = Get-CASMailbox | where {$_.HasActiveSyncDevicePartnership –eq $true}
$Mailbox | foreach {$_.Name; Get-ActiveSyncDeviceStatistics –Mailbox $_.Identity} | ft Name,DeviceUserAgent,LastSuccessSync
http://msexchangeexpert.ru/?p=167
вторник, 10 мая 2011 г.
среда, 4 мая 2011 г.
Правило для сортировки писем от собственного домена
Подписаться на:
Сообщения (Atom)