{"id":468305,"date":"2025-07-23T15:00:58","date_gmt":"2025-07-23T15:00:58","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=468305"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=468305","title":{"rendered":"<span>\u041a\u043e\u0433\u0434\u0430 \u0434\u0435\u043d\u0435\u0433 \u043d\u0435\u0442, \u043d\u043e \u043c\u044b \u0434\u0435\u0440\u0436\u0438\u043c\u0441\u044f. \u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 Python<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u042d\u0442\u0430 \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab<a href=\"https:\/\/habr.com\/ru\/articles\/653941\/\" rel=\"noopener noreferrer nofollow\">\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0437\u0430\u0442\u0440\u0430\u0442<\/a>\u00bb:<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/653941\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"embed_link embed_layout-right\"><\/p>\n<div class=\"embed__thumb\" style=\"background-image: url(&quot;https:\/\/habr.com\/share\/publication\/653941\/1590b229fd0f64acb200db59c3758d8e\/&quot;);\"><\/div>\n<div class=\"embed__caption\">\n<div class=\"embed__caption-title\"><span>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0437\u0430\u0442\u0440\u0430\u0442<\/span><\/div>\n<div class=\"embed__caption-description\">\u0418\u0442\u0430\u043a, \u0412\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440. \u0423 \u0432\u0430\u0441 \u0432 \u0445\u043e\u0437\u044f\u0439\u0441\u0442\u0432\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e&#8230;<\/div>\n<p><span class=\"embed__caption-host\">habr.com<\/span><\/div>\n<p><\/a><\/p>\n<p>\u0422\u044f\u0436\u0435\u043b\u043e\u0439 \u043f\u043e\u0441\u0442\u0443\u043f\u044c\u044e \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0435 \u0438\u0434\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0437\u0430\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u0445\u043e\u0447\u0435\u0448\u044c \u0438\u043b\u0438 \u043d\u0435 \u0445\u043e\u0447\u0435\u0448\u044c, \u043d\u043e \u0441 Windows \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0443\u0445\u043e\u0434\u0438\u0442\u044c. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0448\u0430\u0433\u043e\u0432.<\/p>\n<p>\u0423\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0432\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0435 7-zip \u0438 \u043e\u0431\u0435\u0440\u0442\u043a\u0438 \u0438\u0437 js \u0438 bat \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u043c (\u0434\u043b\u044f \u043c\u0435\u043d\u044f) \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0432\u044b.<\/p>\n<p>\u0421 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Linux, \u0441\u0442\u0430\u0440\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u043e\u0434 Linux.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e bash, \u043d\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 Windows \u043f\u043e\u043a\u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0438\u0441\u0447\u0435\u0437\u043b\u0438, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u043d\u0438\u0445 \u00ab\u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f\u00bb \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u0432\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0436\u0438\u0437\u043d\u044c. \u041d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043e\u0431\u0435\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0434\u043e\u043b\u0433\u0438\u0445 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u044b\u043b \u0432\u0437\u044f\u0442 \u044f\u0437\u044b\u043a Python. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443 \u043c\u0435\u043d\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u0442\u0432\u0435\u0447\u0443 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441: \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0435 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434?<\/p>\n<p>\u0412\u043e \u043f\u0435\u0440\u0432\u044b\u0445, \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2013 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043b\u0430\u0442\u043d\u0430\u044f. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0434\u0435\u043d\u0435\u0433 \u043d\u0430 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0442.<\/p>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u044b\u0445, \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0435\u0439, \u0447\u0442\u043e\u0431\u044b \u0430\u0440\u0445\u0438\u0432 \u0431\u044b\u043b \u0432 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u043c\u043e\u0433 \u0432 \u043d\u0435\u0433\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043d\u0443\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b.<\/p>\n<p>\u0412 \u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u00ab\u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u044b\u0439\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441 (<a href=\"https:\/\/habr.com\/ru\/articles\/654597\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00a0&#8212; \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0442.\u0434.<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/654597\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"embed_link embed_layout-right\"><\/p>\n<div class=\"embed__thumb\" style=\"background-image: url(&quot;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f98\/cee\/c9a\/f98ceec9a4fcbad559f876e6c9645708.png&quot;);\"><\/div>\n<div class=\"embed__caption\">\n<div class=\"embed__caption-title\"><span>\u042f \u0441\u0434\u0435\u043b\u0430\u044e \u0441\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0441 \u0431\u043b\u044d\u043a\u0434\u0436\u0435\u043a\u043e\u043c \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438! \u0418\u043b\u0438 \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0441\u0442\u0438\u0442\u044c \u0438 \u043a\u043e\u0440\u043c\u0438\u0442\u044c \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u043c\u043e\u043d\u0441\u0442\u0440\u0430<\/span><\/div>\n<div class=\"embed__caption-description\">\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u043a\u0430\u043a \u0438\u0437 \u043f\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u044b\u0440\u0430\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0434\u0435&#8230;<\/div>\n<p><span class=\"embed__caption-host\">habr.com<\/span><\/div>\n<p><\/a><\/p>\n<p>\u0418 \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0445, \u043c\u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u044d\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u043c\u0443.<\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0432\u043d\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430, \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u043c\u0430\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0442.\u043f.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u0434\u043b\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043e\u0431\u044a\u0435\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0435\u043b\u0438\u043a \u0434\u043b\u044f \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044e \u0441\u0440\u043e\u043a\u0430 \u0438\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0436\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0431\u0435\u0437 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438\u0445 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438, \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0440\u043e\u043a\u0430 \u0438\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u0438\u0441\u0435\u043c, \u043b\u043e\u0433\u043e\u0432, CSV \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 &#8212; \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. \u042d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430, \u0442\u0430\u043a \u0438 \u0441\u0440\u0435\u0434\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u044e\u0441\u044c, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 7-zip, \u043e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0445, \u0442\u0430\u043a \u0438 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0432\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0410\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0445 \u043f\u043e\u0434 Windows \u0438 Linux. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 Linux \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0410\u043b\u044c\u0442-\u041b\u0438\u043d\u0443\u043a\u0441 (\u0447\u0435\u0441\u0442\u043d\u043e \u043a\u0443\u043f\u0438\u0432 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430). \u0412 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0410\u043b\u044c\u0442-\u041b\u0438\u043d\u0443\u043a\u0441 \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 Python \u0438 \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440 7-zip.<\/p>\n<p>\u041d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0438 \u0447\u0442\u043e\u00a0\u0434\u043b\u044f\u00a0\u043c\u0435\u043d\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u043e\u043c, \u0447\u0442\u043e 7-zip \u0432\u00a0\u0410\u043b\u044c\u0442\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0432\u0435\u0434\u0435\u043c \u0432\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u0438 7z, \u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f 2017\u00a0\u0433\u043e\u0434\u0430\u00a0\u2014 17.05. \u0411\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f 2023\u00a0\u0433\u043e\u0434\u0430\u00a0\u2014 23.01, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u00a0\u043a\u043e\u043c\u0430\u043d\u0434\u0435 7zz. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u0430\u043a\u00a0\u0438 \u0441\u00a0Python, \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 python2\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, python3\u00a0\u0443\u0436\u0435 \u0442\u0440\u0435\u0442\u044c\u044f.<\/p>\n<p>\u041f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432\u00a0\u0441\u0431\u043e\u0440\u043a\u0435 Python. \u041d\u0438\u043a\u0442\u043e \u043d\u0435\u00a0\u043c\u0435\u0448\u0430\u0435\u0442 \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e\u00a0\u043d\u0443\u0436\u043d\u043e, \u043d\u043e\u00a0\u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0441\u00a0\u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0435\u0439, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043e\u0442\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 \u043c\u0435\u043d\u044f\u043b\u0438 \u0441\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e\u00a0\u0440\u0430\u0437\u0440\u0443\u0448\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043d\u0430\u00a0\u043c\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u0427\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0442\u0430\u0449\u0438\u0448\u044c \u0441\u00a0\u0441\u043e\u0431\u043e\u0439, \u0442\u0435\u043c \u043b\u0435\u0433\u0447\u0435 \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u0435\u0435.<\/p>\n<p>\u041e\u043f\u0438\u0448\u0443 \u043e\u0431\u0449\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0430\u00a0\u0441\u0430\u043c \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432\u00a0\u043a\u043e\u043d\u0446\u0435. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e\u2011\u0442\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u00a0\u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435, \u0442\u043e \u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0430\u00a0\u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435.<\/p>\n<p>\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u0430\u0445.<\/p>\n<p>\u0415\u0441\u0442\u044c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u00ab<strong>backup\u2011script<\/strong>\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438<strong> log<\/strong>, <strong>ini<\/strong>,<strong> ls<\/strong>. \u0422\u0430\u043a\u0436\u0435 \u0432\u00a0\u043d\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00ab<strong>backup_copy.py<\/strong>\u00bb.<\/p>\n<p>\u041f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438:<\/p>\n<ul>\n<li>\n<p><strong>log<\/strong>\u00a0\u2014 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f\u00a0\u0437\u0430\u043f\u0438\u0441\u0438 \u043b\u043e\u0433\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u0430. \u0412\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u044f \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 \u043b\u043e\u0433\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 Python \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u0430\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u00a0\u043c\u0435\u0442\u043a\u0430\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0432\u00a0\u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0444\u0430\u0439\u043b. \u0412\u0442\u043e\u0440\u043e\u0439 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043d\u0430\u00a0\u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 Python \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u00a0\u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 \u0441\u0431\u043e\u044f\u0445 \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u044b. \u0412\u00a0\u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>ini<\/strong>\u00a0\u2014 \u0432\u00a0\u043d\u0435\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f INI \u0444\u0430\u0439\u043b\u044b \u0441\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439, \u043e\u00a0\u043d\u0438\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0434\u0430\u043b\u0435\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>ls<\/strong>\u00a0\u2014 \u0437\u0434\u0435\u0441\u044c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u00a0\u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0434\u043b\u044f\u00a0\u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430 7-zip.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u00ab<strong>backup-script<\/strong>\u00bb \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u00ab<strong>sh<\/strong>\u00bb \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043d\u044f\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e, \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u00ab<strong>\\\\server\\users<\/strong>\u00bb. \u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0431\u0435\u0437 \u0441\u0436\u0430\u0442\u0438\u044f, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u0430. \u0415\u0441\u043b\u0438 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u043f\u0430\u0440\u0443 \u043d\u0435\u0434\u0435\u043b\u044c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u0436\u0434\u0443\u044e \u043d\u043e\u0447\u044c, \u0441\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 14 \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043f\u043e\u0434 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u043e\u0432\u0430\u0442\u043e.<\/p>\n<p>\u042f \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0442 1 \u0434\u043e 10 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u043e\u0433\u0434\u0430, \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u043d\u0443\u044e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043d\u043e\u0447\u044c \u0441 \u0441\u0443\u0431\u0431\u043e\u0442\u044b \u043d\u0430 \u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435, \u0430 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u043d\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u043e\u0435 \u043d\u043e\u0447\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0447\u0442\u043e \u043e\u0431\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043c \u043a\u043e\u043f\u0438\u0439 \u0437\u0430 \u0434\u0432\u0435 \u043d\u0435\u0434\u0435\u043b\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 1\u0422\u0431+6*0,01\u0422\u0431+1\u0422\u0431+6*0.01\u0422\u0431 = \u043e\u043a\u043e\u043b\u043e 2.2 \u0422\u0431, \u0430 \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u043b\u0435\u0437\u0435\u0442 \u0434\u0430\u0436\u0435 \u043d\u0430 \u043e\u0434\u0438\u043d 3\u0422\u0431, \u0434\u0438\u0441\u043a.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u043b\u0430\u0435\u043c \u0432 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0434\u0432\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0434\u043d\u0443 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u0442\u043e\u0440\u0443\u044e \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u043e\u0433\u043e. \u042f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e \u044d\u0442\u043e \u0434\u0432\u0443\u043c\u044f \u00ab<strong>sh<\/strong>\u00bb \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 (\u043f\u043e\u0434 Windows \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u00ab<strong>bat<\/strong>\u00bb \u0444\u0430\u0439\u043b\u0430\u043c\u0438).<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00ab<strong>full-users.sh<\/strong>\u00bb:<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash  # \u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.  spath=\/mnt\/backup-script  # \u041c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0434\u0438\u0441\u043a\u043e\u0432  \/sbin\/mount.cifs -o username=backup_user,password=\u043f\u0430\u0440\u043e\u043b\u044c,vers=1.0 \/\/server\/users \/mnt\/sdd\/backup\/netusers  # \u0421\u0442\u0430\u0440\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f users.  echo $(date) +++++++++++++++++++++++++++ &gt;&gt; \"$spath\"\/log\/cron-full-users.log  python3 \"$spath\"\/backup_copy.py \"$spath\"\/ini\/users-full.ini &gt;&gt; \"$spath\"\/log\/cron-full-users.log 2&gt;&amp;1  # \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b  umount \/mnt\/sdd\/backup\/netusers<\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u00ab<strong>\\\\server\\users<\/strong>\u00bb \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u044e \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u044f\u0434\u043e\u043c \u0441 \u043c\u0435\u0441\u0442\u043e\u043c, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0441\u044c \u043a \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0443 \u043f\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u00ab<strong>server<\/strong>\u00bb \u0437\u0430\u0432\u0435\u0434\u0435\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u00ab<strong>backup_user<\/strong>\u00bb, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u00ab<strong>\\\\server\\users<\/strong>\u00bb. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u044d\u0442\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b. \u0422\u0430\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b, \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f. \u0414\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0435, \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0439. \u0421\u0435\u0440\u0432\u0435\u0440 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0435 \u0434\u043e\u043c\u0435\u043d\u0430. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0430\u0446\u0438\u044f \u0434\u043e\u043c\u0435\u043d\u043d\u044b\u0445 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0442\u043e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0438\u043b\u0438 \u0432\u0438\u0440\u0443\u0441\u043d\u044b\u0439 \u0430\u0433\u0435\u043d\u0442 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f Python \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u00ab<strong>backup_copy.py<\/strong>\u00bb \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0432 \u0432\u0438\u0434\u0435 INI \u0444\u0430\u0439\u043b\u0430, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u00ab<strong>log<\/strong>\u00bb. \u041a \u0438\u043c\u0435\u043d\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0441\u043b\u043e\u0432\u043e \u00ab<strong>cron-<\/strong>\u00bb \u0438 \u0442\u043e\u0433\u0434\u0430 \u043b\u043e\u0433\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0438 \u043e\u043d\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u043f\u0440\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438, \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438.<\/p>\n<p>\u0415\u0441\u0442\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u0438\u043d\u0443\u0441 \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u0430\u0440\u043e\u043b\u044c \u043a \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0443 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u044f\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0436\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.<\/p>\n<p>\u0414\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 C++, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e INI \u0444\u0430\u0439\u043b\u044b. \u0412 Windows \u044d\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0441\u0430\u043c\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0435\u0449\u0435 \u0441 \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439, \u0445\u043e\u0442\u044c \u0438 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c. \u0414\u043b\u044f Python \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u00abconfigparser\u00bb (<a href=\"https:\/\/docs.python.org\/3\/library\/configparser.html\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>). \u041e\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 INI \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>\u041c\u043e\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f: \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0410, \u0437\u0430\u0442\u0435\u043c \u0430\u0440\u0445\u0438\u0432 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0411, \u0438 \u0437\u0430\u0442\u0435\u043c \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0414 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0415. \u042d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0440\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432 \u043e\u0434\u0438\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0432 \u043d\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439. \u0418 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u0449\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438.<\/p>\n<p>\u041e\u0431\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u00ab<strong>SETTINGS<\/strong>\u00bb. \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0441 \u043d\u0438\u043c\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u0434\u043b\u044f \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u00ab<strong>\\\\server\\users<\/strong>\u00bb):<\/p>\n<pre><code>[SETTINGS]  file_log = \/mnt\/backup-script\/log\/pack-full-users.log  archive = 7zz  subject = \u041f\u043e\u043b\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f Users  mail_to = backup_info@mymail.ru  mail_from = backup@mymail.ru  file_log_total_stat = \/mnt\/out_net_log\/total_stat.log  file_log_total_mail = \/mnt\/out_net_log\/total_mail.log <\/code><\/pre>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 INI \u0444\u0430\u0439\u043b\u0435 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435: \u0418\u041c\u042f_\u041f\u0410\u0420\u0410\u041c\u0415\u0422\u0420\u0410 = \u0417\u041d\u0410\u0427\u0415\u041d\u0418\u0415<\/p>\n<p>\u0414\u043b\u044f \u043c\u043e\u0438\u0445 \u043d\u0443\u0436\u0434 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a:<\/p>\n<p><strong>file_log<\/strong> = \u041f\u0443\u0442\u044c \u0438 \u0438\u043c\u044f \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0448\u0430\u0433\u0438 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0435 python \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439;<\/p>\n<p><strong>archive<\/strong> = \u041f\u0443\u0442\u044c \u0438 \u0438\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430.<\/p>\n<p>\u0414\u043b\u044f Windows \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a: <em>archive = &#171;C:\\Progra~1\\7-Zip\\7z.exe&#187;<\/em><\/p>\n<p>\u0414\u043b\u044f Linux: <em>archive = 7zz<\/em><\/p>\n<p>\u041f\u0440\u043e\u0431\u0435\u043b\u044b \u0432 \u043f\u0443\u0442\u0438 \u043a \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0443 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 \u2013 \u043e\u0442\u0432\u0435\u0447\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p><strong>subject <\/strong>= \u0422\u0435\u043c\u0430 \u043f\u0438\u0441\u044c\u043c\u0430 \u0434\u043b\u044f \u0432\u044b\u0441\u044b\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u043b\u043e\u0433\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f;<\/p>\n<p><strong>mail_to<\/strong> = \u0410\u0434\u0440\u0435\u0441\u0430\u0442, \u043a\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u043b\u043e\u0433\u043e\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d, \u0442\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442;<\/p>\n<p><strong>mail_from<\/strong> = \u041e\u0442 \u043a\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u043b\u043e\u0433\u043e\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d, \u0442\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p><strong>file_log_total_stat<\/strong> = \u041f\u0443\u0442\u044c \u0438 \u0438\u043c\u044f \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u043e\u0439 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u042d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438. \u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0435\u0442, \u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p><strong>file_log_total_mail<\/strong> = \u041f\u0443\u0442\u044c \u0438 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u044f\u0445 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438 \u0438 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0444\u0430\u0439\u043b \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0435\u0442, \u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u0435 \u0442\u0440\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0435\u0442.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u0441\u0430\u043c\u0438\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439:<\/p>\n<pre><code>[users]  path_to = \/mnt\/sde\/backup\/users  ls_file = \/mnt\/backup-script\/ls\/users.ls  kol_copy = 2  type_copy = full<\/code><\/pre>\n<p><strong>path_to<\/strong> = \u043f\u0443\u0442\u044c \u043a \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0430\u0440\u0445\u0438\u0432\u044b \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u043c\u0438 \u043a\u043e\u043f\u0438\u044f\u043c\u0438.<\/p>\n<p><strong>ls_file<\/strong> = \u041f\u0443\u0442\u044c \u0438 \u0438\u043c\u044f ls \u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u043e\u043c 7-zip \u043f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. <\/p>\n<p>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 users.ls:<\/p>\n<pre><code>\/mnt\/sdd\/backup\/netusers\/\u0411\u0438\u043b\u043b\u0413\u0438\u043b\u0431\u0435\u0440\u0442\/* \/mnt\/sdd\/backup\/netusers\/\u041f\u0430\u0436\u0438\u0442\u043d\u043e\u0432\/* \/mnt\/sdd\/backup\/netusers\/\u0420\u043e\u043c\u0435\u0440\u043e\/*<\/code><\/pre>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e\u00a0\u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u00a0\u0430\u0440\u0445\u0438\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0430\u0441\u043a\u0438 \u0434\u043b\u044f\u00a0\u043e\u0442\u0431\u043e\u0440\u0430, \u043a\u0430\u043a\u00a0\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u0442\u0430\u043a \u0438 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442\u00a0\u0431\u044b\u0442\u044c \u043a\u0430\u043a\u00a0\u043f\u043e\u043b\u043d\u044b\u043c, \u0442\u0430\u043a \u0438 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u043c, \u0442.\u00a0\u0435. \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0441\u00a0\u043f\u043e\u043b\u043d\u044b\u043c \u0430\u0440\u0445\u0438\u0432\u043e\u043c \u0438 \u0432\u00a0\u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u0435 \u0438\u043b\u0438\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b.<\/p>\n<p><strong>type_copy<\/strong> = \u0412\u0438\u0434 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438. \u041c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u00ab<strong>full<\/strong>\u00bb, \u00ab<strong>diff<\/strong>\u00bb \u0438\u043b\u0438 \u00ab<strong>copy<\/strong>\u00bb.<\/p>\n<p><strong>full<\/strong>\u00a0\u2014 \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u0434\u043b\u044f\u00a0\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u00a0\u0448\u0430\u0431\u043b\u043e\u043d\u0443: \u0418\u041c\u042f_\u041e\u0411\u042a\u0415\u041a\u0422\u0410\u2011YYYY\u2011MM\u2011DD\u2011full.7z, \u0433\u0434\u0435 YYYY\u2011MM\u2011DD \u0434\u0430\u0442\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438.<\/p>\n<p><strong>diff<\/strong>\u00a0\u2014 \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u043d\u0430\u00a0\u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0434\u0430\u0442\u0443, \u0430\u0440\u0445\u0438\u0432 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0\u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442\u00a0\u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0441\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0434\u0430\u0442\u043e\u0439. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430 \u043d\u0435\u0442, \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u0430\u044f \u043d\u0435\u00a0\u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u043e\u00a0\u0448\u0430\u0431\u043b\u043e\u043d\u0443 \u0418\u041c\u042f_\u041e\u0411\u042a\u0415\u041a\u0422\u0410\u2011YYYY\u2011MM\u2011DD\u2011yyyy\u2011mm\u2011dd.7z, \u0433\u0434\u0435 YYYY\u2011MM\u2011DD \u0434\u0430\u0442\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438, yyyy\u2011mm\u2011dd \u0434\u0430\u0442\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438.<\/p>\n<p><strong>copy<\/strong>\u00a0\u2014 \u0424\u0430\u0439\u043b\u044b \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0431\u0435\u0437\u00a0\u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. \u041e\u0431\u00a0\u044d\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p><strong>kol_copy<\/strong> = \u0427\u0438\u0441\u043b\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u044b\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439. \u041f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u043a\u043e\u043f\u0438\u0439. \u0415\u0441\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u0434\u0430\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0440\u0430\u0432\u043d\u044b\u0439 2, \u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u00a0\u0434\u0430\u0442\u0435 \u043f\u043e\u043b\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438, \u0430\u00a0\u0432\u0441\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u0430\u0440\u0448\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0438 \u0438\u0445 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435, \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b.<\/p>\n<p>\u0422\u0430\u043a\u0438\u0445 \u0431\u043b\u043e\u043a\u043e\u0432, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043e\u0434\u043d\u0443 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e, \u0432\u00a0INI \u0444\u0430\u0439\u043b\u0435 \u043c\u043e\u0436\u0435\u0442\u00a0\u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u00a0\u0442\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u043a\u0430\u043a\u00a0\u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432\u00a0\u0444\u0430\u0439\u043b\u0435.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u0443\u044e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e, \u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0438\u043c\u0438\u00a0\u0436\u0435, \u043d\u043e\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u00ab<strong>type_copy<\/strong>\u00bb \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d \u00ab<strong>diff<\/strong>\u00bb. \u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u00a0\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0439.<\/p>\n<p>\u041f\u043e\u00a0\u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u00a0\u043f\u0443\u0442\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0432\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u00ab<strong>path_to<\/strong>\u00bb \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432\u00a0\u0441\u0435\u0431\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u0444\u0430\u0439\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u0432\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u00ab<strong>ls_file<\/strong>\u00bb.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c, \u043a\u0430\u043a\u00a0\u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u0432\u00a0\u0434\u0432\u0443\u0445 \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0430\u0445.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 \u00ab<strong>file_log<\/strong>\u00bb:<\/p>\n<pre><code>2025-07-21 22:30:01.910786 : \u041d\u0430\u0447\u0430\u043b\u043e \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438: users 2025-07-21 22:35:41.993847 : \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u043e\u0442\u043b\u0438\u0447\u0435\u043d \u043e\u0442 0. 2025-07-21 22:35:41.998940 : \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438, \u043a\u043e\u0434: -1 2025-07-21 22:35:41.999015 : \u0421\u043e\u0437\u0434\u0430\u043d \u0430\u0440\u0445\u0438\u0432: [\/mnt\/sdd\/backup\/users\/users-2025-07-18-2025-07-21.7z], \u0440\u0430\u0437\u043c\u0435\u0440 597221737 \u0431\u0430\u0439\u0442 (0.56 Gb) 2025-07-21 22:35:41.999089 : \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 [\/mnt\/sdd\/backup\/users]: 1857.49 Gb) 2025-07-21 22:42:34.150954 : \u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u0430. \u0417\u0430\u043d\u044f\u043b\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438: 0:12:32.245048<\/code><\/pre>\n<p>\u042d\u0442\u0430 \u0436\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u043b\u0430\u043d\u0430 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443, \u0435\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab<strong>SETTINGS<\/strong>\u00bb.<\/p>\n<p>\u0412 \u0444\u0430\u0439\u043b\u0435 \u0441 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0447\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0432\u043e\u0434\u043e\u043c, \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u043d\u0438\u0436\u0435:<\/p>\n<pre><code>Thu Jul 17 22:30:02 +07 2025 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  7-Zip (z) 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20  64-bit locale=C.UTF-8 Threads:4 OPEN_MAX:16384  Open archive: \/mnt\/sdd\/backup\/users\/users-2025-07-11-full.7z -- Path = \/mnt\/sdd\/backup\/users\/users-2025-07-11-full.7z Type = 7z Physical Size = 386770386856 Headers Size = 27286344 Method = Copy 7zAES Solid = - Blocks = 712087  Scanning the drive: 95653 folders, 716001 files, 390289939788 bytes (364 GiB)  Creating archive: \/mnt\/sdd\/backup\/users\/users-2025-07-11-2025-07-17.7z  Add new data to archive: 1451 folders, 4143 files, 4215884672 bytes (4021 MiB) 23 anti-folders, 302 anti-files  Files read from disk: 4139 Archive size: 4216106970 bytes (4021 MiB) Everything is Ok<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u0435\u0437 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u0431\u043e\u0440\u0430 \u0443\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u044f \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<\/p>\n<pre><code>[1c]  type_copy = copy  path_to   = \/mnt\/sdb\/backup\/1c  path_from = \/mnt\/sdb\/backup\/net1c  file_end  = .7z  kol_copy = 7<\/code><\/pre>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u00ab<strong>type_copy<\/strong>\u00bb \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d \u00ab<strong>copy<\/strong>\u00bb.<\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438 \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f, \u0442\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u00ab<strong>path_from<\/strong>\u00bb, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0433\u0434\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0432\u044b.<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u00ab<strong>kol_copy<\/strong>\u00bb \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0447\u0438\u0441\u043b\u043e \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439, \u0430 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0432\u0430. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u043e \u0447\u0438\u0441\u043b\u043e <strong>7<\/strong>, \u0442\u043e \u0435\u0441\u043b\u0438 \u0430\u0440\u0445\u0438\u0432 \u0441\u0442\u0430\u0440\u0448\u0435 <strong>7<\/strong> \u0434\u043d\u0435\u0439 \u043e\u0442 \u0434\u043d\u044f, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f \u0441\u043a\u0440\u0438\u043f\u0442, \u0442\u043e \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d. <\/p>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u0435\u043d, \u0447\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0435\u0431\u044f \u0432\u0435\u0434\u0435\u0442 \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043d\u0435 \u0441\u0430\u043c\u043e\u0435 \u043b\u0443\u0447\u0448\u0435\u0435.<\/p>\n<p>\u0418 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043d\u043e\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u00ab<strong>file_end<\/strong>\u00bb. \u0412 \u043d\u0435\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u042d\u0442\u043e \u043d\u0435 \u043c\u0430\u0441\u043a\u0430, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435, \u0442.\u0435. \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u043e\u0442 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0445, \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044e \u00ab<strong>\u2013full.7z<\/strong>\u00bb.<\/p>\n<p>\u041d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<p>\u0414\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f. \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u044d\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u041f\u043e\u0434 Windows \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u00abrobocopy.exe\u00bb, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u00abcopy\u00bb \u0438 \u00abxcopy\u00bb \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0438\u0441\u044c. \u041f\u043e\u0434 Linux \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0443\u0441\u043b\u043e\u0436\u043d\u044f\u043b\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u00ab<em>shutil.copyfileobj<\/em>\u00bb \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0448\u0443\u0441\u0442\u0440\u043e.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u00ab<em>check_call(exec_str)<\/em>\u00bb, \u0433\u0434\u0435 \u00abexec_str\u00bb \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u0422.\u0435. \u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u0431\u0438\u0432\u0430\u043b \u0435\u0451 \u0441 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044e \u0435\u0451 \u043d\u0430 \u043a\u0443\u0441\u043a\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u00ab<em>.split(\u00ab \u00bb)<\/em>\u00bb. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432 \u043d\u0435\u043c \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0431\u0435\u043b, \u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043e\u0448\u0438\u0431\u043a\u0443. \u0422.\u0435. \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0441\u0442\u0440\u043e\u043a\u0443 &#171;C:\\Program Files\\7-Zip\\7z.exe&#187;, \u0434\u0430\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f Windows \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f \u00abC:\\Progra~1\\7-Zip\\7z.exe\u00bb.<\/p>\n<p>\u041d\u0443 \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 (<a href=\"https:\/\/disk.yandex.ru\/d\/m_igxFf0uqukyw\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>):<\/p>\n<pre><code class=\"python\">#-------------------------------------------------------------------------------------------------------------- #                             \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. # #  \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\/\u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043c\u043e\u0434\u0443\u043b\u044c \u0447\u0435\u0440\u0435\u0437 \u0444\u0430\u0439\u043b ini \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435. \u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 # \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0443\u0442\u0435\u043c \u043a \u043d\u0435\u043c\u0443. #  \u0412 ini \u0444\u0430\u0439\u043b\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a [SETTINGS], \u0432 \u043d\u0435\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: # file_log   - \u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0443\u0442\u0435\u043c. # archive    - \u0418\u043c\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f Linux - 7zz. \u0414\u043b\u044f Windows - C:\\Progra~1\\7-Zip\\7z.exe. \u041f\u0443\u0442\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c #              \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0432 \u0438\u043c\u0435\u043d\u0438. # mail_to    - \u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0442\u043e\u0433\u043e, \u043a\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043b\u043e\u0433 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0431\u043e\u0442\u044b. #              \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d, \u0442\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. # mail_from  - \u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u043f\u043e\u043b\u0435 \"\u041e\u0442 \u043a\u043e\u0433\u043e\". \u0415\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d, \u0442\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. # subject    - \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c \u043f\u0438\u0441\u044c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0441 \u043b\u043e\u0433\u043e\u043c. # file_log_total_stat - \u0418\u043c\u044f \u043b\u043e\u0433\u0430 \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0443\u0442\u0435\u043c. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, #              \u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043b\u043e\u0433\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. # file_log_total_mail - \u0418\u043c\u044f \u043b\u043e\u0433\u0430 \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u0438\u0441\u044c\u043c\u043e\u043c \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. #              \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0443\u0442\u0435\u043c. \u0415\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0435\u0442, \u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. # #  \u0414\u0430\u043b\u0435\u0435 \u0432 ini \u0444\u0430\u0439\u043b\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043b\u043e\u043a\u043e\u0432 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0435\u0434\u0438\u043d\u0438\u0446 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\/\u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. \u0413\u0434\u0435 \u0438\u043c\u044f \u0431\u043b\u043e\u043a\u0430 # \u044d\u0442\u043e \u0438\u043c\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\/\u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: [post]. #  \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: # type_copy  - \u041c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f copy, full, diff (\u0435\u0441\u043b\u0438 \u044f\u0432\u043d\u043e \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e, \u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e copy). #       copy - \u041e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430. #       full - \u041f\u043e\u043b\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. #       diff - \u0420\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. # path_from  - \u041c\u0435\u0441\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u041f\u0443\u0442\u044c \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0438\u0437 ls \u0444\u0430\u0439\u043b\u0430. # path_to    - \u041c\u0435\u0441\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u0443\u0434\u0430 \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u0438\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0430\u0440\u0445\u0438\u0432. # kol_copy   - \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0442\u043e \u0444\u0430\u0439\u043b\u044b \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043e\u0442 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 #              \u0434\u043d\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b. #              \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u043b\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0442 \u043f\u043e #              \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0444\u0430\u0439\u043b\u043e\u0432. # ls_file    - \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u044f ls \u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0443 7-zip \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0430\u043f\u043e\u043a  #              \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. \u0424\u0430\u0439\u043b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0443\u0442\u0435\u043c. # file_end   - \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u043f\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 #              \u0438\u043b\u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 -full.7z \u0434\u043b\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0438\u043b\u0438 .7z  #              \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439.   ##-------------------------------------------------------------------------------------------------------------- import datetime import os import sys import shutil                                   # \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0434\u0438\u0441\u043a\u0435. import smtplib                                  # \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u043e\u0447\u0442\u044b. import configparser                             # \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 ini \u0444\u0430\u0439\u043b\u043e\u0432. from subprocess import check_call               # \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. from email.mime.multipart import MIMEMultipart  TIME_START = datetime.datetime.now()            # \u0417\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. DATE_TODAY = str(TIME_START)[0:10]              # \u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0434\u0430\u0442\u0430 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432. DIFF_COPY = 'diff'                              # \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0434\u043b\u044f \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. FULL_COPY = 'full'                              # \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. COPY_COPY = 'copy'                              # \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430.  #-------------------------------------------------------------------------------------------------------------- # \u0417\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043b\u043e\u0433. \u041e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443. # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: #           msg_text : \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 #           start_string : \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0435\u0440\u0435\u0434 \u043c\u0435\u0442\u043a\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, #                          \u0435\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c '\\n', \u0442\u043e \u043b\u043e\u0433 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439. #-------------------------------------------------------------------------------------------------------------- def LogOut(msg_text, start_string = ''):     logFile.write(start_string + '\\n' + str(datetime.datetime.now()) + ' : ' + msg_text)     global message     message = message + '\\n' + str(datetime.datetime.now()) + ' : ' + str(msg_text)     logFile.flush()     return  #-------------------------------------------------------------------------------------------------------------- # \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435, \u0433\u0434\u0435 date &gt; KolDay # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: #           PathToDel - \u041f\u0443\u0442\u044c \u043a \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u0441 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438. #           KolDay    - \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f. #-------------------------------------------------------------------------------------------------------------- def DelOldFile(PathToDel, KolDay):     try:         os.chdir(PathToDel)         for f in os.listdir('.'):             dateFile = datetime.datetime.fromtimestamp(os.stat(f).st_mtime)             timeLen = (TIME_START - dateFile).days             if timeLen &gt; KolDay:                 LogOut('\\t\u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0444\u0430\u0439\u043b [' + f + '] \u043f\u043e\u0441\u043b\u0435: ' + str(timeLen) + ' \u0434\u043d\u0435\u0439')                 os.remove(f)     except:         LogOut('ERROR: \u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043f\u0443\u0442\u044c [' + PathToDel + '] \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u043e!')     return  #-------------------------------------------------------------------------------------------------------------- #  \u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430. #  \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: #           src - \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0439\u043b #           dst - \u0424\u0430\u0439\u043b \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f #           param buffer_size - \u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1 mb #-------------------------------------------------------------------------------------------------------------- def copyFile(src, dst, buffer_size=1024*1024):     print('\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 ' + src + ' \u0432 ' + dst)     buffer_size = min(buffer_size, os.path.getsize(src))     if(buffer_size == 0):         buffer_size = 1024      with open(src, 'rb') as file_src:         with open(dst, 'wb') as file_dst:             shutil.copyfileobj(file_src, file_dst, buffer_size)     shutil.copystat(src, dst)     return  #-------------------------------------------------------------------------------------------------------------- # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0431\u0449\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c settings \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043e\u0431\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. # \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043b\u043e\u0432\u0430\u0440\u044c. #-------------------------------------------------------------------------------------------------------------- def readSettings(config):     settings = {}     settings['file_log']  = config.get('SETTINGS', 'file_log', fallback = None)                         # \u0424\u0430\u0439\u043b \u0441 \u043b\u043e\u0433\u0430\u043c\u0438     settings['subject']   = config.get('SETTINGS', 'subject', fallback = '\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f')    # \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043f\u0438\u0441\u044c\u043c\u0430     settings['mail_to']   = config.get('SETTINGS', 'mail_to', fallback = None)                          # \u041a\u043e\u043c\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u044c\u043c\u043e     settings['mail_from'] = config.get('SETTINGS', 'mail_from', fallback = None)                        # \u041e\u0442 \u043a\u043e\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u044c\u043c\u043e     settings['archive']   = config.get('SETTINGS', 'archive', fallback = None)                          # \u041f\u0443\u0442\u044c \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430     settings['file_log_total_stat'] = config.get('SETTINGS', 'file_log_total_stat', fallback = None)    # \u041f\u0443\u0442\u044c \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u043b\u043e\u0433\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f     settings['file_log_total_mail'] = config.get('SETTINGS', 'file_log_total_mail', fallback = None)    # \u041f\u0443\u0442\u044c \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438, \u0435\u0441\u043b\u0438 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f     return settings  #-------------------------------------------------------------------------------------------------------------- # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c unit \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044e. # \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043b\u043e\u0432\u0430\u0440\u044c. #-------------------------------------------------------------------------------------------------------------- def readUnit(backup):     unit = {}     unit['path_to']   = os.path.realpath(config.get(backup, 'path_to',   fallback = None))    # \u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0432\u0430.     unit['path_from'] = os.path.realpath(config.get(backup, 'path_from', fallback = \"\"))      # \u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u043e\u0442\u043a\u0443\u0434\u0430 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432.     unit['file_end']  = config.get(backup, 'file_end',  fallback = None)                      # \u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435), \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0438\u0441\u043a \u0444\u0430\u0439\u043b\u0430.     unit['kol_copy']  = config.getint(backup, 'kol_copy',  fallback = 1)                      # \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u0438\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0432\u0430.     unit['ls_file']   = os.path.realpath(config.get(backup, 'ls_file',   fallback = \"\"))      # \u041f\u0443\u0442\u044c \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 ls \u0444\u0430\u0439\u043b\u0430 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430     unit['type_copy'] = config.get(backup, 'type_copy', fallback = 'copy')                    # \u0412\u0438\u0434 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: COPY, FULL, DIFF     return unit  #-------------------------------------------------------------------------------------------------------------- # \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0431\u0430\u0439\u0442 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u0443\u044e \u0432 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u0430\u0445. # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: #           bytes - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0447\u0438\u0441\u043b\u0430. # \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443. #-------------------------------------------------------------------------------------------------------------- def toGigabyte(bytes):     return f\"{bytes\/(2**30):.2f}\"  #-------------------------------------------------------------------------------------------------------------- # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u043f\u0443\u0442\u0435\u043c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: #           backup - \u0420\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. #           unit   - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 #-------------------------------------------------------------------------------------------------------------- def doCopy(backup, unit):     LogOut('\u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: ' + backup, '\\n')      DelOldFile(unit['path_to'], unit['kol_copy'])               # \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.      try:         os.chdir(unit['path_from'])                                                             # \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.     except:         LogOut('ERROR: \u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043f\u0443\u0442\u044c [' + unit['path_from'] + '] \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u043e!')     else:         for f in os.listdir('.'):                                                               # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c.             dateFile = datetime.datetime.fromtimestamp(os.stat(f).st_mtime)             timeLen = (TIME_START - dateFile).days                                              # \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b             if f[-len(unit['file_end']):] == unit['file_end'] and timeLen &lt;= unit['kol_copy'] : # \u0415\u0441\u043b\u0438 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0432\u043f\u0430\u043b\u043e \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u0438 \u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043d\u0430\u0448 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d                 if not os.path.exists(os.path.join(unit['path_to'], f)):                        # \u0438 \u043e\u043d \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043f\u0430\u043f\u043a\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.                     LogOut('\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 [' + f + '], \u0440\u0430\u0437\u043c\u0435\u0440 ' + str(os.stat(f).st_size) + ' \u0431\u0430\u0439\u0442 (' + toGigabyte(os.stat(f).st_size) + ' Gb)' )                     copyFile(os.path.join(unit['path_from'], f), os.path.join(unit['path_to'], f))                  # \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439.         LogOut('\\t\u0421\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u043f\u0443\u0442\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f [' + unit['path_to'] + ']: (' + toGigabyte(shutil.disk_usage(unit['path_to']).free) + ' Gb)')  #-------------------------------------------------------------------------------------------------------------- # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u043f\u0443\u0442\u0435\u043c \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438. # \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: #           backup - \u0420\u0430\u0437\u0434\u0435\u043b \u043f\u043e\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. #           unit   - \u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 #-------------------------------------------------------------------------------------------------------------- def doPack(backup, unit, settings):     LogOut('\u041d\u0430\u0447\u0430\u043b\u043e \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438: ' + backup, '\\n')      cmd = ''                                # \u0421\u0442\u0440\u043e\u043a\u0430 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438.     opt = '-pPassword -r -y -ssw -mx=0'     # \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430.     fullBackupName = ''                     # \u0418\u043c\u044f \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430.     diffBackupName = ''                     # \u0418\u043c\u044f \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430.      if unit['type_copy'] == FULL_COPY:         cmd = 'a'         fullBackupName = backup + '-' + DATE_TODAY + '-full.7z'         if os.path.exists(os.path.join(unit['path_to'], fullBackupName)):             LogOut('\\tERROR: \u0424\u0430\u0439\u043b [' + fullBackupName + '] \u043f\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e [' + unit['path_to'] + '] \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u0410\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430!')             return      if unit['type_copy'] == DIFF_COPY:         cmd = 'u'         lastModifyDate = datetime.datetime.min                # \u0412 \u043f\u0430\u043f\u043a\u0435 \u0441 \u0430\u0440\u0445\u0438\u0432\u0430\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u043e \u0434\u0430\u0442\u0435 \u0444\u0430\u0439\u043b \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430.         try:             os.chdir(unit['path_to'])                                                                      # \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0433\u0434\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0430\u0440\u0445\u0438\u0432\u044b.         except:             LogOut('\\tERROR: \u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043f\u0443\u0442\u044c [' + unit['path_to'] + ']. \u0410\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430!')             return         else:             for f in sorted(os.listdir('.')):                                                  # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c.                 dateFile = datetime.datetime.fromtimestamp(os.stat(f).st_mtime)                # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u0442\u0443 \u0444\u0430\u0439\u043b\u0430                 if f[-len('-full.7z'):] == '-full.7z' and f[0:len(backup)] == backup:          # \u0415\u0441\u043b\u0438 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0432\u043f\u0430\u043b\u043e \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u0438 \u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043d\u0430\u0448 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d                     fullBackupName = f                     lastModifyDate = dateFile          # \u041f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u0435\u043c \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0434\u0430\u0442\u043e\u0439 \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438.         if fullBackupName == \"\":                # \u0415\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043f\u043e\u043b\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u0430\u0440\u0445\u0438\u0432\u0430, \u0442\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044e \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443.             LogOut('\\tERROR: \u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043f\u043e\u043b\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0432 \u0434\u043b\u044f [' + backup + '] \u043f\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e  [' + unit['path_to'] + ']. \u0410\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430!')             return          diffBackupName = fullBackupName[0:-len('full.7z')] + DATE_TODAY + \".7z\"          if os.path.exists(os.path.join(unit['path_to'], diffBackupName)):             LogOut('\\tERROR: \u0424\u0430\u0439\u043b [' + diffBackupName + '] \u043f\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e [' + unit['path_to'] + '] \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u0410\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u044f \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430!')             return          # \u0417\u0430\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430 \u043f\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438:         # -u-: \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0432 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d         # -u: \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0435\u0439         #  p0: \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0435\u0441\u0442\u044c \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c - \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c         #  q3: \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0435\u0441\u0442\u044c \u0432 \u0430\u0440\u0445\u0438\u0432\u0435, \u043d\u043e \u0435\u0433\u043e \u043d\u0435\u0442 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 - \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0435         #  x2: \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u043d\u043e\u0432\u0435\u0435, \u0447\u0435\u043c \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 - \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u0430\u0440\u0445\u0438\u0432         #  z0: \u0444\u0430\u0439\u043b \u0432 \u0430\u0440\u0445\u0438\u0432\u0435 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u0430\u043a \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 - \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c         #  !: \u0438\u0434\u0435\u0442 \u0438\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430          opt = opt + ' -u- -up0q3x2z0!' + os.path.join(unit['path_to'], diffBackupName)      exec_str = (settings['archive'] + ' ' + cmd + \" \" + os.path.join(unit['path_to'], fullBackupName) + \" \" + opt + \" @\" + unit['ls_file']).split(' ')     result = -1      START = str(datetime.datetime.now())     # \u0412\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.     LOG_DATE_START = START[0:10]     LOG_TIME_START = START[11:19]      try:         # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430.         result = check_call(exec_str)     except:         LogOut('\\t\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u043e\u0442\u043b\u0438\u0447\u0435\u043d \u043e\u0442 0.')      END = str(datetime.datetime.now())     # \u0412\u0440\u0435\u043c\u044f \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.     LOG_DATE_END = END[0:10]     LOG_TIME_END = END[11:19]      created_file = ''     if unit['type_copy'] == DIFF_COPY:         created_file = os.path.join(unit['path_to'], diffBackupName)     if unit['type_copy'] == FULL_COPY:         created_file = os.path.join(unit['path_to'], fullBackupName)      LogOut('\\t\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438, \u043a\u043e\u0434: ' + str(result))     LogOut('\\t\u0421\u043e\u0437\u0434\u0430\u043d \u0430\u0440\u0445\u0438\u0432: [' + created_file + '], \u0440\u0430\u0437\u043c\u0435\u0440 ' + str(os.stat(created_file).st_size) + ' \u0431\u0430\u0439\u0442 (' + toGigabyte(os.stat(created_file).st_size) + ' Gb)')     LogOut('\\t\\t\u0421\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 [' + unit['path_to'] + ']: ' + toGigabyte(shutil.disk_usage(unit['path_to']).free) + ' Gb)')      # \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0430\u0440\u0445\u0438\u0432\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0431\u0430\u0437\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438.     if settings['file_log_total_stat'] != None:         logFileTotalStat = open(settings['file_log_total_stat'],'a')         logFileTotalStat.write(backup + ';'+ LOG_DATE_START + ';' + LOG_TIME_START + ';' + LOG_DATE_END + ';' + LOG_TIME_END + ';' + str(os.stat(created_file).st_size) + '\\r\\n')         logFileTotalStat.close()      # \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0430\u0440\u0445\u0438\u0432\u0435 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438.     if settings['file_log_total_mail'] != None:         logFileTotalMail = open(settings['file_log_total_mail'], 'a')         logFileTotalMail.write((backup+'-'+unit['type_copy']).ljust(20,' ') + ('[' + created_file + ']').ljust(70,' ') + LOG_DATE_START + '\\t' + LOG_TIME_START + '\\t' + LOG_DATE_END + '\\t' + LOG_TIME_END + '\\t size ' + str(os.stat(created_file).st_size) + ' bytes (' + toGigabyte(os.stat(created_file).st_size) + ' Gb)' + '\\r\\n')         logFileTotalMail.close()      # \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u044b\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0432\u043e\u0432.     if unit['type_copy'] == FULL_COPY:         fileList = []                   # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a.         try:             os.chdir(unit['path_to'])                                                                      # \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0433\u0434\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0430\u0440\u0445\u0438\u0432\u044b.         except:             LogOut('\\tERROR: \u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u043f\u0443\u0442\u044c [' + unit['path_to'] + ']. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043e!')             return         else:             for f in os.listdir('.'):                                                       # \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435.                 if f[-len('-full.7z'):] == '-full.7z' and f[0:len(backup)] == backup:                     fileList.append(f)             index = 0             for f in sorted(fileList, reverse=True):                                        # \u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e \u0438\u043c\u0435\u043d\u0438.                 index += 1                 if index &gt; unit['kol_copy']:                                                # \u041e\u0442\u0441\u0435\u043a\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 kol_full_copy \u0444\u0430\u0439\u043b\u044b, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u043e\u0434 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435.                     for deleteFile in os.listdir('.'):                         maskFile = f[:-len('-full.7z')]                                     # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u0438\u043c\u0435\u043d\u0438 [OBJ-YYYY-MM-DD].                         if deleteFile[:len(maskFile)] == maskFile:                          # \u0415\u0441\u043b\u0438 \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c, \u0442\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0444\u0430\u0439\u043b.                             os.remove(os.path.join(unit['path_to'], deleteFile))                             LogOut('\\t\\t\u0423\u0434\u0430\u043b\u0435\u043d \u0430\u0440\u0445\u0438\u0432: [' + os.path.join(unit['path_to'], deleteFile) + ']')  #--------------------------------------------------------------------------------------------------------------  config = configparser.ConfigParser()            # \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0444\u0430\u0439\u043b \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.  fileINI =  sys.argv[1]                          # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043c\u044f ini \u0444\u0430\u0439\u043b\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430. config.read(fileINI)                            # \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0437 INI \u0444\u0430\u0439\u043b\u0430.  settings = readSettings(config)                 # \u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b.  logFile = open(settings['file_log'], 'a')       # \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u041b\u041e\u0413 \u0444\u0430\u0439\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u0437 settings.  list = config.sections()                        # \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0430. list.remove(\"SETTINGS\")                         # \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0431\u043b\u043e\u043a \u0441 \u043e\u0431\u0449\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.  message = \"\"                                    # \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.  for backup in list:     unit = readUnit(backup)                                         # \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\/\u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438.      if unit['type_copy'] == COPY_COPY:                                      # \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432.         doCopy(backup, unit)      if unit['type_copy'] == FULL_COPY or unit['type_copy'] == DIFF_COPY:    # \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432.         doPack(backup, unit, settings)  LogOut('\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u0430. \u0417\u0430\u043d\u044f\u043b\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438: ' + str(datetime.datetime.now() - TIME_START))  # \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0442\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0438\u0441\u044c\u043c\u043e \u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b. if settings['mail_to'] != None and settings['mail_from'] != None:     message = (f\"Subject: {settings['subject']}\\n\\n\" + message).encode('utf-8') # \u041d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043b\u0430 \u043f\u0438\u0441\u044c\u043c\u0430.     server = smtplib.SMTP(host='mail.mymail.ru', port=25)       # \u0421\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0439 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.     msg = MIMEMultipart()     msg['From'] = settings['mail_from']                          # \u041e\u0442 \u043a\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u043e\u0442\u0447\u0435\u0442\u043e\u043c.     msg['To'] = settings['mail_to']                              # \u0413\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u044f\u0449\u0438\u043a, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u043b\u0430\u043d \u043e\u0442\u0447\u0435\u0442.     try:         server.sendmail(msg['From'], msg['To'], message)         # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043f\u0438\u0441\u044c\u043c\u0430 \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u043e\u0439.     except:         LogOut('ERROR: \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u043f\u0438\u0441\u044c\u043c\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u0443\u0434\u0430\u0447\u0435\u0439!')     server.quit()  logFile.close() <\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/930228\/\"> https:\/\/habr.com\/ru\/articles\/930228\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u042d\u0442\u0430 \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab<a href=\"https:\/\/habr.com\/ru\/articles\/653941\/\" rel=\"noopener noreferrer nofollow\">\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0437\u0430\u0442\u0440\u0430\u0442<\/a>\u00bb:<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/653941\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"embed_link embed_layout-right\"><\/p>\n<div class=\"embed__thumb\" style=\"background-image: url(&quot;https:\/\/habr.com\/share\/publication\/653941\/1590b229fd0f64acb200db59c3758d8e\/&quot;);\"><\/div>\n<div class=\"embed__caption\">\n<div class=\"embed__caption-title\"><span>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0437\u0430\u0442\u0440\u0430\u0442<\/span><\/div>\n<div class=\"embed__caption-description\">\u0418\u0442\u0430\u043a, \u0412\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440. \u0423 \u0432\u0430\u0441 \u0432 \u0445\u043e\u0437\u044f\u0439\u0441\u0442\u0432\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e&#8230;<\/div>\n<p><span class=\"embed__caption-host\">habr.com<\/span><\/div>\n<p><\/a><\/p>\n<p>\u0422\u044f\u0436\u0435\u043b\u043e\u0439 \u043f\u043e\u0441\u0442\u0443\u043f\u044c\u044e \u043f\u043e \u0441\u0442\u0440\u0430\u043d\u0435 \u0438\u0434\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0437\u0430\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u0445\u043e\u0447\u0435\u0448\u044c \u0438\u043b\u0438 \u043d\u0435 \u0445\u043e\u0447\u0435\u0448\u044c, \u043d\u043e \u0441 Windows \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0443\u0445\u043e\u0434\u0438\u0442\u044c. \u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0448\u0430\u0433\u043e\u0432.<\/p>\n<p>\u0423\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0432\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0435 7-zip \u0438 \u043e\u0431\u0435\u0440\u0442\u043a\u0438 \u0438\u0437 js \u0438 bat \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u043c (\u0434\u043b\u044f \u043c\u0435\u043d\u044f) \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0432\u044b.<\/p>\n<p>\u0421 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Linux, \u0441\u0442\u0430\u0440\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u043e\u0434 Linux.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e bash, \u043d\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 Windows \u043f\u043e\u043a\u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0438\u0441\u0447\u0435\u0437\u043b\u0438, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u043d\u0438\u0445 \u00ab\u043a\u0440\u0443\u0442\u044f\u0442\u0441\u044f\u00bb \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u0432\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0436\u0438\u0437\u043d\u044c. \u041d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043e\u0431\u0435\u0438\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0434\u043e\u043b\u0433\u0438\u0445 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u044b\u043b \u0432\u0437\u044f\u0442 \u044f\u0437\u044b\u043a Python. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443 \u043c\u0435\u043d\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u0442\u0432\u0435\u0447\u0443 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441: \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0435 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434?<\/p>\n<p>\u0412\u043e \u043f\u0435\u0440\u0432\u044b\u0445, \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2013 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043b\u0430\u0442\u043d\u0430\u044f. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u0431\u044e\u0434\u0436\u0435\u0442\u043d\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0434\u0435\u043d\u0435\u0433 \u043d\u0430 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0442.<\/p>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u044b\u0445, \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0435\u0439, \u0447\u0442\u043e\u0431\u044b \u0430\u0440\u0445\u0438\u0432 \u0431\u044b\u043b \u0432 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u043c\u043e\u0433 \u0432 \u043d\u0435\u0433\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043d\u0443\u0436\u043d\u044b\u0439 \u0444\u0430\u0439\u043b.<\/p>\n<p>\u0412 \u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u00ab\u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u044b\u0439\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441 (<a href=\"https:\/\/habr.com\/ru\/articles\/654597\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00a0&#8212; \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0442.\u0434.<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/654597\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"embed_link embed_layout-right\"><\/p>\n<div class=\"embed__thumb\" style=\"background-image: url(&quot;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f98\/cee\/c9a\/f98ceec9a4fcbad559f876e6c9645708.png&quot;);\"><\/div>\n<div class=\"embed__caption\">\n<div class=\"embed__caption-title\"><span>\u042f \u0441\u0434\u0435\u043b\u0430\u044e \u0441\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0441 \u0431\u043b\u044d\u043a\u0434\u0436\u0435\u043a\u043e\u043c \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438! \u0418\u043b\u0438 \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0441\u0442\u0438\u0442\u044c \u0438 \u043a\u043e\u0440\u043c\u0438\u0442\u044c \u0434\u043e\u0431\u0440\u043e\u0433\u043e \u043c\u043e\u043d\u0441\u0442\u0440\u0430<\/span><\/div>\n<div class=\"embed__caption-description\">\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u043a\u0430\u043a \u0438\u0437 \u043f\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u044b\u0440\u0430\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0434\u0435&#8230;<\/div>\n<p><span class=\"embed__caption-host\">habr.com<\/span><\/div>\n<p><\/a><\/p>\n<p>\u0418 \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0445, \u043c\u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u044d\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u043c\u0443.<\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u043e\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0432\u043d\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430, \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432, \u043c\u0430\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0442.\u043f.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0432\u043d\u044b\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u0434\u043b\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043e\u0431\u044a\u0435\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0435\u043b\u0438\u043a \u0434\u043b\u044f \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u044b\u0445 \u043a\u043e\u043f\u0438\u0439 \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044e \u0441\u0440\u043e\u043a\u0430 \u0438\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0436\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0431\u0435\u0437 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438\u0445 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438, \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0440\u043e\u043a\u0430 \u0438\u0445 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u0438\u0441\u0435\u043c, \u043b\u043e\u0433\u043e\u0432, CSV \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 &#8212; \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. \u042d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430, \u0442\u0430\u043a \u0438 \u0441\u0440\u0435\u0434\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u044e\u0441\u044c, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 7-zip, \u043e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0445, \u0442\u0430\u043a \u0438 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0432\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0410\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0445 \u043f\u043e\u0434 Windows \u0438 Linux. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 Linux \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0410\u043b\u044c\u0442-\u041b\u0438\u043d\u0443\u043a\u0441 (\u0447\u0435\u0441\u0442\u043d\u043e \u043a\u0443\u043f\u0438\u0432 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430). \u0412 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0410\u043b\u044c\u0442-\u041b\u0438\u043d\u0443\u043a\u0441 \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 Python \u0438 \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440 7-zip.<\/p>\n<p>\u041d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0438 \u0447\u0442\u043e\u00a0\u0434\u043b\u044f\u00a0\u043c\u0435\u043d\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u043e\u043c, \u0447\u0442\u043e 7-zip \u0432\u00a0\u0410\u043b\u044c\u0442\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0432\u0435\u0434\u0435\u043c \u0432\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u0438 7z, \u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f 2017\u00a0\u0433\u043e\u0434\u0430\u00a0\u2014 17.05. \u0411\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f 2023\u00a0\u0433\u043e\u0434\u0430\u00a0\u2014 23.01, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u00a0\u043a\u043e\u043c\u0430\u043d\u0434\u0435 7zz. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u0430\u043a\u00a0\u0438 \u0441\u00a0Python, \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 python2\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, python3\u00a0\u0443\u0436\u0435 \u0442\u0440\u0435\u0442\u044c\u044f.<\/p>\n<p>\u041f\u0440\u0438\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432\u00a0\u0441\u0431\u043e\u0440\u043a\u0435 Python. \u041d\u0438\u043a\u0442\u043e \u043d\u0435\u00a0\u043c\u0435\u0448\u0430\u0435\u0442 \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e\u00a0\u043d\u0443\u0436\u043d\u043e, \u043d\u043e\u00a0\u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0441\u00a0\u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0435\u0439, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043e\u0442\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 \u043c\u0435\u043d\u044f\u043b\u0438 \u0441\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e\u00a0\u0440\u0430\u0437\u0440\u0443\u0448\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043d\u0430\u00a0\u043c\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435. \u0427\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0442\u0430\u0449\u0438\u0448\u044c \u0441\u00a0\u0441\u043e\u0431\u043e\u0439, \u0442\u0435\u043c \u043b\u0435\u0433\u0447\u0435 \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u0435\u0435.<\/p>\n<p>\u041e\u043f\u0438\u0448\u0443 \u043e\u0431\u0449\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0430\u00a0\u0441\u0430\u043c \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432\u00a0\u043a\u043e\u043d\u0446\u0435. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e\u2011\u0442\u043e \u0437\u0430\u0445\u043e\u0447\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u00a0\u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435, \u0442\u043e \u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0430\u00a0\u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435.<\/p>\n<p>\u0412\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u0430\u0445.<\/p>\n<p>\u0415\u0441\u0442\u044c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u00ab<strong>backup\u2011script<\/strong>\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438<strong> log<\/strong>, <strong>ini<\/strong>,<strong> ls<\/strong>. \u0422\u0430\u043a\u0436\u0435 \u0432\u00a0\u043d\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00ab<strong>backup_copy.py<\/strong>\u00bb.<\/p>\n<p>\u041f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438:<\/p>\n<ul>\n<li>\n<p><strong>log<\/strong>\u00a0\u2014 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f\u00a0\u0437\u0430\u043f\u0438\u0441\u0438 \u043b\u043e\u0433\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u0430. \u0412\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u044f \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 \u043b\u043e\u0433\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 Python \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u0430\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0441\u00a0\u043c\u0435\u0442\u043a\u0430\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0432\u00a0\u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0444\u0430\u0439\u043b. \u0412\u0442\u043e\u0440\u043e\u0439 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043d\u0430\u00a0\u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 Python \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u00a0\u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 \u0441\u0431\u043e\u044f\u0445 \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u044b. \u0412\u00a0\u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>ini<\/strong>\u00a0\u2014 \u0432\u00a0\u043d\u0435\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f INI \u0444\u0430\u0439\u043b\u044b \u0441\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439, \u043e\u00a0\u043d\u0438\u0445 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0434\u0430\u043b\u0435\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>ls<\/strong>\u00a0\u2014 \u0437\u0434\u0435\u0441\u044c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u00a0\u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0434\u043b\u044f\u00a0\u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u0430 7-zip.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u00ab<strong>backup-script<\/strong>\u00bb \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u00ab<strong>sh<\/strong>\u00bb \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043d\u044f\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e, \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u00ab<strong>\\\\server\\users<\/strong>\u00bb. \u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0431\u0435\u0437 \u0441\u0436\u0430\u0442\u0438\u044f, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u0430. \u0415\u0441\u043b\u0438 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u043f\u0430\u0440\u0443 \u043d\u0435\u0434\u0435\u043b\u044c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u0436\u0434\u0443\u044e \u043d\u043e\u0447\u044c, \u0441\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 14 \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043f\u043e\u0434 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u043e\u0432\u0430\u0442\u043e.<\/p>\n<p>\u042f \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0437\u0430 \u0441\u0443\u0442\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0442 1 \u0434\u043e 10 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u043e\u0433\u0434\u0430, \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u043d\u0443\u044e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043d\u043e\u0447\u044c \u0441 \u0441\u0443\u0431\u0431\u043e\u0442\u044b \u043d\u0430 \u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435, \u0430 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u043d\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u043e\u0435 \u043d\u043e\u0447\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0447\u0442\u043e \u043e\u0431\u0449\u0438\u0439 \u043e\u0431\u044a\u0435\u043c \u043a\u043e\u043f\u0438\u0439 \u0437\u0430 \u0434\u0432\u0435 \u043d\u0435\u0434\u0435\u043b\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 1\u0422\u0431+6*0,01\u0422\u0431+1\u0422\u0431+6*0.01\u0422\u0431 = \u043e\u043a\u043e\u043b\u043e 2.2 \u0422\u0431, \u0430 \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u043b\u0435\u0437\u0435\u0442 \u0434\u0430\u0436\u0435 \u043d\u0430 \u043e\u0434\u0438\u043d 3\u0422\u0431, \u0434\u0438\u0441\u043a.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u043b\u0430\u0435\u043c \u0432 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0434\u0432\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0434\u043d\u0443 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u0442\u043e\u0440\u0443\u044e \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u043e\u0433\u043e. \u042f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e \u044d\u0442\u043e \u0434\u0432\u0443\u043c\u044f \u00ab<strong>sh<\/strong>\u00bb \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 (\u043f\u043e\u0434 Windows \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u00ab<strong>bat<\/strong>\u00bb \u0444\u0430\u0439\u043b\u0430\u043c\u0438).<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00ab<strong>full-users.sh<\/strong>\u00bb:<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash  # \u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.  spath=\/mnt\/backup-script  # \u041c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0434\u0438\u0441\u043a\u043e\u0432  \/sbin\/mount.cifs -o username=backup_user,password=\u043f\u0430\u0440\u043e\u043b\u044c,vers=1.0 \/\/server\/users \/mnt\/sdd\/backup\/netusers  # \u0421\u0442\u0430\u0440\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f users.  echo $(date) +++++++++++++++++++++++++++ &gt;&gt; \"$spath\"\/log\/cron-full-users.log  python3 \"$spath\"\/backup_copy.py \"$spath\"\/ini\/users-full.ini &gt;&gt; \"$spath\"\/log\/cron-full-users.log 2&gt;&amp;1  # \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b  umount \/mnt\/sdd\/backup\/netusers<\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u00ab<strong>\\\\server\\users<\/strong>\u00bb \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u044e \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u044f\u0434\u043e\u043c \u0441 \u043c\u0435\u0441\u0442\u043e\u043c, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0441\u044c \u043a \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0443 \u043f\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u00ab<strong>server<\/strong>\u00bb \u0437\u0430\u0432\u0435\u0434\u0435\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u00ab<strong>backup_user<\/strong>\u00bb, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u00ab<strong>\\\\server\\users<\/strong>\u00bb. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u044d\u0442\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b. \u0422\u0430\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b, \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f. \u0414\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0435, \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0439. \u0421\u0435\u0440\u0432\u0435\u0440 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0435 \u0434\u043e\u043c\u0435\u043d\u0430. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0430\u0446\u0438\u044f \u0434\u043e\u043c\u0435\u043d\u043d\u044b\u0445 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0442\u043e \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a \u0438\u043b\u0438 \u0432\u0438\u0440\u0443\u0441\u043d\u044b\u0439 \u0430\u0433\u0435\u043d\u0442 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438.<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f Python \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u00ab<strong>backup_copy.py<\/strong>\u00bb \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0432 \u0432\u0438\u0434\u0435 INI \u0444\u0430\u0439\u043b\u0430, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u00ab<strong>log<\/strong>\u00bb. \u041a \u0438\u043c\u0435\u043d\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0441\u043b\u043e\u0432\u043e \u00ab<strong>cron-<\/strong>\u00bb \u0438 \u0442\u043e\u0433\u0434\u0430 \u043b\u043e\u0433\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0438 \u043e\u043d\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u043f\u0440\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438, \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438.<\/p>\n<p>\u0415\u0441\u0442\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u0438\u043d\u0443\u0441 \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u0430\u0440\u043e\u043b\u044c \u043a \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0443 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u044f\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0436\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.<\/p>\n<p>\u0414\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 C++, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e INI \u0444\u0430\u0439\u043b\u044b. \u0412 Windows \u044d\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0441\u0430\u043c\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0435\u0449\u0435 \u0441 \u043f\u0435\u0440\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439, \u0445\u043e\u0442\u044c \u0438 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c. \u0414\u043b\u044f Python \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u00abconfigparser\u00bb (<a href=\"https:\/\/docs.python.org\/3\/library\/configparser.html\" rel=\"noopener noreferrer nofollow\">\u0441\u0441\u044b\u043b\u043a\u0430<\/a>). \u041e\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 INI \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<p>\u041c\u043e\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f: \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u043f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0432 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0410, \u0437\u0430\u0442\u0435\u043c \u0430\u0440\u0445\u0438\u0432 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0411, \u0438 \u0437\u0430\u0442\u0435\u043c \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0414 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0415. \u042d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0440\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432 \u043e\u0434\u0438\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0432 \u043d\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u0439. \u0418 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043e\u0431\u0449\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438.<\/p>\n<p>\u041e\u0431\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u00ab<strong>SETTINGS<\/strong>\u00bb. \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u0441 \u043d\u0438\u043c\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u0434\u043b\u044f \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u00ab<strong>\\\\server\\users<\/strong>\u00bb):<\/p>\n<pre><code>[SETTINGS]  file_log = \/mnt\/backup-script\/log\/pack-full-users.log  archive = 7zz  subject = \u041f\u043e\u043b\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f Users  mail_to = backup_info@mymail.ru  mail_from = backup@mymail.ru  file_log_total_stat = \/mnt\/out_net_log\/total_stat.log  file_log_total_mail = \/mnt\/out_net_log\/total_mail.log <\/code><\/pre>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 INI \u0444\u0430\u0439\u043b\u0435 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435: \u0418\u041c\u042f_\u041f\u0410\u0420\u0410\u041c\u0415\u0422\u0420\u0410 = \u0417\u041d\u0410\u0427\u0415\u041d\u0418\u0415<\/p>\n<p>\u0414\u043b\u044f \u043c\u043e\u0438\u0445 \u043d\u0443\u0436\u0434 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a:<\/p>\n<p><strong>file_log<\/strong> = \u041f\u0443\u0442\u044c \u0438 \u0438\u043c\u044f \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0448\u0430\u0433\u0438 \u0430\u0440\u0445\u0438\u0432\u0430\u0446\u0438\u0438, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0435 python \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439;<\/p>\n<p><strong>archive<\/strong> <\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-468305","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/468305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=468305"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/468305\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=468305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=468305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=468305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}