Скрипт конвертирования файлов xls в xlsm

##############################
# Скрипт для конвертирования файлов *.xls -> *.xlsm
##############################
cls
#Подключаем сборку для того, чтобы выбрать с ее помощью тип сохраняемого файла
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
#Выбираем тип сохраняемых файлов
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbookMacroEnabled
#Путь к папке с xls-файлами
$Path2xls="\\server\share"
#"Запускаем" Excel (создаем COM-объект Excel.Application)
$objExcel=New-Object -comobject Excel.Application
#Отключаем уведомления пользователя (например, о перезаписи файла)
$objExcel.DisplayAlerts=$False
#получим все xls-файлы в папке
$xlsFiles=@(dir (Join-Path $Path2xls "*.*") -Filter *.xls -Include *xls)
#Для каждого xls-файла в папке...
for ($i=0; $i -lt $xlsFiles.Length; $i++) {
    Write-Progress -Activity "обрабатываем файл $($xlsFiles[$i])" -PercentComplete ([Math]::Round($i*100/$xlsFiles.Length))
    #Start-Sleep -Milliseconds 1
    #
    #выполняем открытие файла ("Рабочей книги") в Excel
    $objWorkbook=$objExcel.Workbooks.Open($xlsFiles[$i].FullName)
    $NewFileName=Join-Path $xlsFiles[$i].DirectoryName "$($xlsFiles[$i].BaseName).xlsm"
    $objWorkbook.SaveAs($NewFileName, $xlFixedFormat);
    #Закрываем книгу Excel
    $objExcel.Workbooks.Close()
    #
}
#
#Выходим из Excel (вернее даем команду на выход из Excel)
$objExcel.Quit()
#обнуляем объект
$objExcel = $null
#запускаем принудительную сборку мусора для освобождения памяти и окончательного завершения процесса
[gc]::collect()
[gc]::WaitForPendingFinalizers()
#

Android, rxJava. Подписка на уход приложения в background и возвращение обратно

Актуально для приложений с несколькими Activity, когда надо отслеживать уход всего приложения в background и возвращение обратно

Код на Kotlin, но все достаточно прозрачно. На Java будет так же.

class MyApplication: Application() {
    companion object {
        val onForeground: PublishSubject<Boolean> = PublishSubject.create()      //Отсюда получаем true/false в зависимости от состояния приложения
        val stateSubscription: PublishSubject<Boolean> = PublishSubject.create() //Сюда пихаем true/false от своих Activity
        private var currentState = false
    }
 
    override fun onCreate() {
        super.onCreate()
        stateSubscription.debounce(2, TimeUnit.SECONDS).filter { b -> b != currentState }.subscribe { b -> currentState = b;onForeground.onNext(b) }
    }
}
 
class MyActivity:: AppCompatActivity() {
    override fun onResume() {
        super.onResume()
        MyApplication.currentActivity.onNext(true)
    }
    override fun onPause() {
        super.onPause()
        MyApplication.currentActivity.onNext(false)
    } 
}
 

Собственно вместо true/false в onResume/onPause никто не мешает пихать this/null

В java v8 перестал запускаться iDRAC v5. Как починить?

После установки JRE v8 перестала запускаться консоль KVM на старых серверах Dell c iDRAC v5.
Оказалось, причина в том, что в JRE v 8 по умолчанию заблокированы некоторые устаревшие протоколы безопасности, которые использует в своей работе iDRAC v5. Для того, чтобы восстановить работоспособность консоли, нужно разрешить SSLv3, RC4, MD5withRSA, удалив их упоминание в параметре jdk.tls.disabledAlgorithms =…
Аналогичным образм необходимо поступить с MD5 в параметре jdk.certpath.disabledAlgorithms=...

 Для внесения необходимых изменений в настройки безопасности Java необходимо будет отредактировать файл 
  • C:\Program Files (x86)\Java\jre1.8.0_XX\lib\security\java.security 



Скрипт изменения содержимого ярлыка.

Данный скрипт позволяет вносить исправления в ярлыки. Это может потребоваться в том случае, если объект, на который ссылался ярлык, по каким-то причинам «перехал» и ссылка стала недействительной. Или для приведения ярлыков к общему стандарту, так, например, в нашей организации пользователи использовали ярлыки ссылающиеся на одни и те же документы в расшаренных папках двумя разными способами: \\servername\sharename\filename и \\DFSRoot\sharename\filename из-за чего возникали проблемы с относительными ссылками в документах Excel (из-за того, что база гиперссылки, не заданная явным образом, зависила от пути к документу при его открытии).


Читать дальше →

dig/nslookup команды (работа с dns)

nslookup redhat.com
nslookup -query=mx redhat.com
nslookup -type=ns redhat.com
nslookup -type=soa redhat.com
nslookup -type=any google.com
nslookup 209.132.183.181
nslookup redhat.com ns1.redhat.com
nslookup -port 56 redhat.com
nslookup -timeout=10 redhat.com
nslookup -debug redhat.com

------------------------------
The dig command output has the following sections:
  • Header: This displays the dig command version number, the global options used by the dig command, and few additional header information.
  • QUESTION SECTION: This displays the question it asked the DNS. i.e This is your input. Since we said ‘dig redhat.com’, and the default type dig command uses is A record, it indicates in this section that we asked for the A record of the redhat.com website
  • ANSWER SECTION: This displays the answer it receives from the DNS. i.e This is your output. This displays the A record of redhat.com
  • AUTHORITY SECTION: This displays the DNS name server that has the authority to respond to this query. Basically this displays available name servers of redhat.com
  • ADDITIONAL SECTION: This displays the ip address of the name servers listed in the AUTHORITY SECTION.
  • Stats section at the bottom displays few dig command statistics including how much time it took to execute this query

  • +nocomments – Turn off the comment lines
  • +noauthority – Turn off the authority section
  • +noadditional – Turn off the additional section
  • +nostats – Turn off the stats section
  • +noanswer – Turn off the answer section (Of course, you wouldn’t want to turn off the answer section)

dig redhat.com
dig redhat.com +nocomments +noquestion +noauthority +noadditional +nostats
dig redhat.com +noall +answer
dig redhat.com  MX +noall +answer
dig -t MX redhat.com +noall +answer
dig redhat.com NS +noall +answer
dig -t NS redhat.com +noall +answer
dig redhat.com ANY +noall +answer
dig -t ANY redhat.com  +noall +answer
dig redhat.com +short
dig redhat.com ns +short
dig -x 209.132.183.81 +short
dig -x 209.132.183.81
dig @ns1.redhat.com redhat.com

vi names.txt
dig -f names.txt +noall +answer
dig -f names.txt MX +noall +answer
dig redhat.com mx +noall +answer centos.org ns +noall +answer

--------------

freebsd 10 по умолчанию не имеет nslookup, dig. искать в
/usr/ports/dns/bind-tools

Скрипт на питоне для мониторинга трафика на шлюзе и отдельном хосте

0. Возможности скрипта
— мониторинг трафика по подсети, списку ip адресов, отдельному ip
— отображение суммарной нагрузки на канал. Общая и раздельная по каждому ip
— суммарный объем трафика за все время измерений. Общий и раздельный по каждому ip
— сортировка вывода по нагрузке и объему трафика
— переключение между входящим и исходящим трафиком
— веселые, белые полоски, для удобочитаемости

1. Системные требования
— установленный в системе интерпретатор языка питон. Данный скрипт написан под версию 2.7
— для нормального функционирования должны быть установлены следующие библиотеки для питона:
     — pcap
     — curses
     — dpkt

2. Настройки скрипта
Настройки скрипта осуществляются путем изменения переменных в тексте самого скрипта.

chanel_width — ширина канала. Необходимо для правильного отображения нагрузки.
Считается по следующей формуле (ширина канала в mbits)*1024*1024/50
chanel_width = 209715
ip_adress — здесь указывается подсеть, список ip адресов, разделенных запятой или одиночный ip.
ip_adress = '192.168.1.'
iface_name — название сетевого интерфейса, на котором осуществляется мониторинг.
iface_name='xl0'
net_type — тип мониторинга. net — мониторинг подсети, list — список ip, host — одиночный хост, не являющийся шлюзом.
net_type = 'net'

3.Управление
Управление осуществляется через функциональные клавиши и они таковы:
    -[d] переключение между входящим и исходящим трафиком
    -[s] включить/выключить веселые полоски
    -[m] сортировать по загруженности канала
    -[t] сортировать по суммарному объему трафика
    -[u] отключить сортировку
    -[q] выход
 
4.Внешний вид
Без веселых полосок

 
С веселыми полосками

 
5. Код скрипта

Читать дальше →

Обновление временной зоны в OpenBSD. Добавляем RTZ 2

1. Проверяем файл с описанием зоны на предмет наличия указаний по коррекции времени.

root:~->zdump -v /etc/localtime
...
/etc/localtime  Sat Mar 27 22:59:59 2010 UTC = Sun Mar 28 01:59:59 2010 MSK isdst=0
/etc/localtime  Sat Mar 27 23:00:00 2010 UTC = Sun Mar 28 03:00:00 2010 MSD isdst=1
/etc/localtime  Sat Oct 30 22:59:59 2010 UTC = Sun Oct 31 02:59:59 2010 MSD isdst=1
/etc/localtime  Sat Oct 30 23:00:00 2010 UTC = Sun Oct 31 02:00:00 2010 MSK isdst=0
/etc/localtime  Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0
/etc/localtime  Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSK isdst=0
/etc/localtime  Mon Jan 18 03:14:07 2038 UTC = Mon Jan 18 07:14:07 2038 MSK isdst=0
/etc/localtime  Tue Jan 19 03:14:07 2038 UTC = Tue Jan 19 07:14:07 2038 MSK isdst=0

Указаний по коррекции времени в 2014 году в текущем файле зоны нет, посему переходим ко второму пункту.

Если мы наблюдаем в выводе zdump'a нижеследующее — ничего делать не надо, все и так в порядке.

/etc/localtime  Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 MSK isdst=0
/etc/localtime  Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 MSK isdst=0


Читать дальше →