Python/CMD 文件备份

本文介绍如何使用Python的zipfile模块实现文件备份及压缩,并利用Windows的任务计划程序进行定时任务调度。此外,还提供了使用CMD脚本及robocopy命令备份文件的方法。

1.使用Python压缩文件并另存

 1 import zipfile, os
 2 
 3 #备份文件ZIP格式: folder 目标文件夹 ; Targetfolder:另存地址
 4 def backuptozip(folder, Targetfolder):
 5     if Targetfolder=="":
 6         Targetfolder=folder
 7     folder = os.path.abspath(folder)
 8     number = 1
 9     while True:
10         zipFilename = os.path.basename(folder) + "_" + str(number) + '.zip'
11         newzip=Targetfolder+zipFilename
12         if not os.path.exists(newzip):
13             break
14         number = number + 1
15 
16     print('creating...' + (newzip))
17     backupzip = zipfile.ZipFile(newzip, 'w')
18     newfolder = os.path.basename(folder)
19     for foldername, subfolders, filenames in os.walk(folder):
20         print("adding file in ..." + foldername)
21         cc = len(folder)
22         cnewfolder = newfolder + foldername[cc:]
23         backupzip.write(foldername, cnewfolder)
24         for filename in filenames:
25             newBase = newfolder + '_'
26             if filename.startswith(newBase) and filename.endswith('.zip'):
27                 continue
28             cnewfile = cnewfolder +"\\"+ filename
29             backupzip.write(os.path.join(foldername, filename), cnewfile)
30     backupzip.close()
31     print('Done.')
32 
33 backuptozip("C:\\Users\\xxx\\OneDrive\\","")

 

2.使用CMD脚本 - robocopy 命令备份并存储日志

robocopy Z:\ E:\ShareBackup /z /is /e >> E:\ShareBackuplog\%date:~0,4%%date:~5,2%%date:~8,2%_log.txt

(更多robocopy 参数使用可参考 http://www.cnblogs.com/xinyuxin912/archive/2013/07/10/3181564.html) 

 

3.通过window自带任务计划程序定时调度

 

转载于:https://www.cnblogs.com/liangto/p/6295113.html

huaxi@ubuntu:~/ge550v1$ python3.8 -m pip install --upgrade pip ERROR: Exception: Traceback (most recent call last): File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 180, in _main status = self.run(options, args) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 204, in wrapper return func(self, options, args) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 269, in run session = self.get_default_session(options) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 77, in get_default_session self._session = self.enter_context(self._build_session(options)) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 87, in _build_session session = PipSession( File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/network/session.py", line 275, in __init__ self.headers["User-Agent"] = user_agent() File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/network/session.py", line 132, in user_agent linux_distribution = distro.linux_distribution() # type: ignore File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 125, in linux_distribution return _distro.linux_distribution(full_distribution_name) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 681, in linux_distribution self.version(), File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 741, in version self.lsb_release_attr('release'), File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 903, in lsb_release_attr return self._lsb_release_info.get(attribute, '') File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 556, in __get__ ret = obj.__dict__[self._fname] = self._f(obj) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 1014, in _lsb_release_info stdout = subprocess.check_output(cmd, stderr=devnull) File "/usr/local/python/python3.8/lib/python3.8/subprocess.py", line 415, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/local/python/python3.8/lib/python3.8/subprocess.py", line 516, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1. Traceback (most recent call last): File "/usr/local/python/python3.8/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/local/python/python3.8/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/__main__.py", line 31, in <module> sys.exit(_main()) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 71, in main return command.main(cmd_args) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 104, in main return self._main(args) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 221, in _main self.handle_pip_version_check(options) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 143, in handle_pip_version_check session = self._build_session( File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 87, in _build_session session = PipSession( File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/network/session.py", line 275, in __init__ self.headers["User-Agent"] = user_agent() File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_internal/network/session.py", line 132, in user_agent linux_distribution = distro.linux_distribution() # type: ignore File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 125, in linux_distribution return _distro.linux_distribution(full_distribution_name) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 681, in linux_distribution self.version(), File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 741, in version self.lsb_release_attr('release'), File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 903, in lsb_release_attr return self._lsb_release_info.get(attribute, '') File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 556, in __get__ ret = obj.__dict__[self._fname] = self._f(obj) File "/usr/local/python/python3.8/lib/python3.8/site-packages/pip/_vendor/distro.py", line 1014, in _lsb_release_info stdout = subprocess.check_output(cmd, stderr=devnull) File "/usr/local/python/python3.8/lib/python3.8/subprocess.py", line 415, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/local/python/python3.8/lib/python3.8/subprocess.py", line 516, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
09-04
su -s /bin/sh -c "keystone-manage db_sync" keystone /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.10.2) or chardet (3.0.4) doesn't match a supported version! RequestsDependencyWarning) Traceback (most recent call last): File "/usr/bin/keystone-manage", line 6, in <module> from keystone.cmd.manage import main File "/usr/lib/python2.7/site-packages/keystone/cmd/manage.py", line 19, in <module> from keystone.cmd import cli File "/usr/lib/python2.7/site-packages/keystone/cmd/cli.py", line 29, in <module> from keystone.cmd import bootstrap File "/usr/lib/python2.7/site-packages/keystone/cmd/bootstrap.py", line 17, in <module> from keystone.common import driver_hints File "/usr/lib/python2.7/site-packages/keystone/common/driver_hints.py", line 18, in <module> from keystone import exception File "/usr/lib/python2.7/site-packages/keystone/exception.py", line 20, in <module> import keystone.conf File "/usr/lib/python2.7/site-packages/keystone/conf/__init__.py", line 20, in <module> from osprofiler import opts as profiler File "/usr/lib/python2.7/site-packages/osprofiler/opts.py", line 18, in <module> from osprofiler import web File "/usr/lib/python2.7/site-packages/osprofiler/web.py", line 20, in <module> from osprofiler import profiler File "/usr/lib/python2.7/site-packages/osprofiler/profiler.py", line 27, in <module> from osprofiler import notifier File "/usr/lib/python2.7/site-packages/osprofiler/notifier.py", line 16, in <module> from osprofiler.drivers import base File "/usr/lib/python2.7/site-packages/osprofiler/drivers/__init__.py", line 4, in <module> from osprofiler.drivers import loginsight # noqa File "/usr/lib/python2.7/site-packages/osprofiler/drivers/loginsight.py", line 25, in <module> import requests File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 94, in <module> from urllib3.exceptions import DependencyWarning ImportError: cannot import name DependencyWarning [root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.10.2) or chardet (3.0.4) doesn't match a supported version! RequestsDependencyWarning) Traceback (most recent call last): File "/usr/bin/keystone-manage", line 6, in <module> from keystone.cmd.manage import main File "/usr/lib/python2.7/site-packages/keystone/cmd/manage.py", line 19, in <module> from keystone.cmd import cli File "/usr/lib/python2.7/site-packages/keystone/cmd/cli.py", line 29, in <module> from keystone.cmd import bootstrap File "/usr/lib/python2.7/site-packages/keystone/cmd/bootstrap.py", line 17, in <module> from keystone.common import driver_hints File "/usr/lib/python2.7/site-packages/keystone/common/driver_hints.py", line 18, in <module> from keystone import exception File "/usr/lib/python2.7/site-packages/keystone/exception.py", line 20, in <module> import keystone.conf File "/usr/lib/python2.7/site-packages/keystone/conf/__init__.py", line 20, in <module> from osprofiler import opts as profiler File "/usr/lib/python2.7/site-packages/osprofiler/opts.py", line 18, in <module> from osprofiler import web File "/usr/lib/python2.7/site-packages/osprofiler/web.py", line 20, in <module> from osprofiler import profiler File "/usr/lib/python2.7/site-packages/osprofiler/profiler.py", line 27, in <module> from osprofiler import notifier File "/usr/lib/python2.7/site-packages/osprofiler/notifier.py", line 16, in <module> from osprofiler.drivers import base File "/usr/lib/python2.7/site-packages/osprofiler/drivers/__init__.py", line 4, in <module> from osprofiler.drivers import loginsight # noqa File "/usr/lib/python2.7/site-packages/osprofiler/drivers/loginsight.py", line 25, in <module> import requests File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 94, in <module> from urllib3.exceptions import DependencyWarning ImportError: cannot import name DependencyWarning 您在 /var/spool/mail/root 中有邮件 [root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.10.2) or chardet (3.0.4) doesn't match a supported version! RequestsDependencyWarning) Traceback (most recent call last): File "/usr/bin/keystone-manage", line 6, in <module> from keystone.cmd.manage import main File "/usr/lib/python2.7/site-packages/keystone/cmd/manage.py", line 19, in <module> from keystone.cmd import cli File "/usr/lib/python2.7/site-packages/keystone/cmd/cli.py", line 29, in <module> from keystone.cmd import bootstrap File "/usr/lib/python2.7/site-packages/keystone/cmd/bootstrap.py", line 17, in <module> from keystone.common import driver_hints File "/usr/lib/python2.7/site-packages/keystone/common/driver_hints.py", line 18, in <module> from keystone import exception File "/usr/lib/python2.7/site-packages/keystone/exception.py", line 20, in <module> import keystone.conf File "/usr/lib/python2.7/site-packages/keystone/conf/__init__.py", line 20, in <module> from osprofiler import opts as profiler File "/usr/lib/python2.7/site-packages/osprofiler/opts.py", line 18, in <module> from osprofiler import web File "/usr/lib/python2.7/site-packages/osprofiler/web.py", line 20, in <module> from osprofiler import profiler File "/usr/lib/python2.7/site-packages/osprofiler/profiler.py", line 27, in <module> from osprofiler import notifier File "/usr/lib/python2.7/site-packages/osprofiler/notifier.py", line 16, in <module> from osprofiler.drivers import base File "/usr/lib/python2.7/site-packages/osprofiler/drivers/__init__.py", line 4, in <module> from osprofiler.drivers import loginsight # noqa File "/usr/lib/python2.7/site-packages/osprofiler/drivers/loginsight.py", line 25, in <module> import requests File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 94, in <module> from urllib3.exceptions import DependencyWarning ImportError: cannot import name DependencyWarning
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值