Я разрабатываю Python 3 программу для резервного копирования с помощью удаленных папок rsyn c на локальное NAS.
Я rsyn c папка отлично, но когда я хочу сжать .tar.gz папка в файл я получаю эту ошибку:
int() argument must be a string, a bytes-like object or a number, not 'NoneType'
tar: Removing leading `/' from member names
file changed as we read it
tar: write error
Функция, которая генерирует сжатый файл, выглядит так:
def make_tarfile(self, output_filename, source_dir):
try:
# Generate .tar.gz
print("Generating .tar.gz backup")
tar_args = ['tar', '-cvzf', source_dir+output_filename+'.tar.gz', source_dir]
process = subprocess.Popen(
tar_args,
stdout=subprocess.PIPE
)
if int(process.returncode) != 0:
print('Command failed. Return code : {}'.format(process.returncode))
print("OK.")
# Remove files
print("Removing files previously compressed.")
remove_args = ['find', source_dir, '-type f', '!', '-name "*.?*"', '-delete']
process = subprocess.Popen(
remove_args,
stdout=subprocess.PIPE
)
print("OK.")
if int(process.returncode) != 0:
print('Command failed. Return code : {}'.format(process.returncode))
except Exception as e:
print(e)
exit(1)
Если я пишу команду с помощью bash, кажется, работа.