Як створити і відправити архіви поштою з bat файлу
Багато води утекло з тих пір як, я написав невеличкий батник і помістив його виконання в віндовий планувальник. З тих пір це найстабільніша річ, яка працює без втручання адміністратора. У мене пішло чимало часу, перш ніж я зібрав з уривків команд потрібний мені алгоритм. Коротко: з сервера додатків вивантажується 2 файлу, необхідно їх запакувати і відправити поштою.
Отже маємо 2 tab файлу: Summa _ *. Tab, Reg_ * tab
* - це поточна дата, тому що додаток в кінець імені файлу дописується поточну дату.
Для початку стискаємо файли, але тому що корпоративний поштовий сервер за раз не пропускав більше 3 Мб, було вирішено робити архіви по 2500 КБ. Для цього використовуємо наступну конструкцію:
«C: \ Program Files (x86) \ WinRar \ rar» a -agYYYY-MM-DD-HHMMSS -v2500 C: \ Temp \ archive_.rar m [f] C: \ Temp \ Summa _ *. Tab C: \ Temp \ Reg_ * tab
У підсумку на виході маємо архів з ім'ям archive_agYYYY-MM-DD-HHMMSS.rar, як ви напевно вже зрозуміли, за формування дати відповідає ключ -agYYYY-MM-DD-HHMMSS, а за обрізання архіву ключ -v2500. Якщо в стислому вигляді, розмір перевищить 2500 КБ, то буде створено 2 файли з іменами:
archive _ YYYY-MM-DD-HHMMSS.part02.rar
Тепер необхідно відправити архіви на пошту. Для цього запустимо цикл:
- Переносимо файли, які ми стиснули в папку:
move C: \ temp \ Summa _ *. tab C: \ temp \ back
-Для відправки пошти я використовував утиліту sendemail
sendemail -f [email protected] -t [email protected] -u archive_.ATE:
0,2% »-s IP -a« C: \ temp \% NName% .rar »-cc [email protected] -xu tlegen -xp 123456
Насправді, у мене в сорочки з короткими рукавами дані рядка прописані кілька разів, тому що бувають випадки коли архівів створюється 2,3 або навіть 4, ви теж можете помістити нижченаведений код:
sendemail -f [email protected] -t [email protected] -u archive_.ATE:
0,2% »-s IP -a« C: \ temp \% NName% .part01.rar »-cc [email protected] -xu tlegen -xp 123456
sendemail -f [email protected] -t [email protected] -u archive_.ATE:
0,2% »-s IP -a« C: \ temp \% NName% .part02.rar »-cc [email protected] -xu tlegen -xp 123456
Якщо ви помітили, 2 команди я розділив командою ping server -n 10, це робиться для того, щоб створити інтервал між командами. Пінгувати можна комп'ютер з якого проводиться відправлення файлів.
коротко поясню значення ключів, які я використовував:
-f [email protected] - в поле Від кого буде записаний цю адресу
-t [email protected] - це поле Кому відправити лист
-xu Ім'я користувача для авторизації на сервері
- Наостанок переносимо відправлений архів в іншу папку, щоб не відправляти його заново.
move c: \ temp \ archive _ *. rar c: \ temp \ back