2 Commits
2.0.1 ... 2.1.0

Author SHA1 Message Date
2bcab8f3ab Remove option user
Now the program handles automatically the correct user even when
running with sudo
2019-09-17 19:35:25 +02:00
fbd9520845 Clean code 2019-09-17 16:30:06 +02:00

View File

@ -32,7 +32,6 @@ class Backup():
self.exclude_path = '' self.exclude_path = ''
self.exclude = '' self.exclude = ''
self.options = '' self.options = ''
self.user = ''
self.keep = -1 self.keep = -1
self.n_in = 0 self.n_in = 0
@ -53,8 +52,6 @@ class Backup():
print(' the backup.') print(' the backup.')
print('-k, --keep NUMBER Specify the number of old backups to keep.') print('-k, --keep NUMBER Specify the number of old backups to keep.')
print(' Default: keep all.') print(' Default: keep all.')
print('-u, --user USER User performing the backup.')
print(' Useful when running with "sudo"')
print('-s, --checksum Use the checksum rsync option to compare files') print('-s, --checksum Use the checksum rsync option to compare files')
print(' (MUCH slower).') print(' (MUCH slower).')
print('') print('')
@ -84,7 +81,7 @@ class Backup():
self.logfile.close() self.logfile.close()
self.errfile.close() self.errfile.close()
self.warnfile.close() self.warnfile.close()
move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log') move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log')
move(self.err_path, self.homedir + '/.simple_backup/errors.log') move(self.err_path, self.homedir + '/.simple_backup/errors.log')
move(self.warn_path, self.homedir + '/.simple_backup/warnings.log') move(self.warn_path, self.homedir + '/.simple_backup/warnings.log')
@ -105,7 +102,7 @@ class Backup():
self.logfile.close() self.logfile.close()
self.errfile.close() self.errfile.close()
self.warnfile.close() self.warnfile.close()
move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log') move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log')
move(self.err_path, self.homedir + '/.simple_backup/errors.log') move(self.err_path, self.homedir + '/.simple_backup/errors.log')
move(self.warn_path, self.homedir + '/.simple_backup/warnings.log') move(self.warn_path, self.homedir + '/.simple_backup/warnings.log')
@ -172,7 +169,7 @@ class Backup():
self.logfile.close() self.logfile.close()
self.errfile.close() self.errfile.close()
self.warnfile.close() self.warnfile.close()
move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log') move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log')
move(self.err_path, self.homedir + '/.simple_backup/errors.log') move(self.err_path, self.homedir + '/.simple_backup/errors.log')
move(self.warn_path, self.homedir + '/.simple_backup/warnings.log') move(self.warn_path, self.homedir + '/.simple_backup/warnings.log')
@ -194,7 +191,7 @@ class Backup():
exit(1) exit(1)
else: else:
self.last_backup = '' self.last_backup = ''
self.backup_dir = self.backup_dir + '/' + date self.backup_dir = self.backup_dir + '/' + date
try: try:
@ -254,16 +251,10 @@ class Backup():
self.errfile.write(err_message) self.errfile.write(err_message)
self.errfile.write('\n') self.errfile.write('\n')
if self.user is not None:
pass
# chown $USER:$USER $LOG && chmod 644 $LOG
# chown $USER:$USER $ERR && chmod 644 $ERR
# chown $USER:$USER $WARN && chmod 644 $WARN
self.logfile.close() self.logfile.close()
self.errfile.close() self.errfile.close()
self.warnfile.close() self.warnfile.close()
move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log') move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log')
move(self.err_path, self.homedir + '/.simple_backup/errors.log') move(self.err_path, self.homedir + '/.simple_backup/errors.log')
move(self.warn_path, self.homedir + '/.simple_backup/warnings.log') move(self.warn_path, self.homedir + '/.simple_backup/warnings.log')
@ -272,7 +263,7 @@ class Backup():
self.backup_dir = self.backup_dev + '/simple_backup' self.backup_dir = self.backup_dev + '/simple_backup'
date = str(datetime.now()) date = str(datetime.now())
# Create the backup subdirectory using date # Create the backup subdirectory using date
if isdir(self.backup_dir): if isdir(self.backup_dir):
#If previous backups exist, save link to the last backup #If previous backups exist, save link to the last backup
@ -285,7 +276,7 @@ class Backup():
exit(1) exit(1)
else: else:
self.last_backup = '' self.last_backup = ''
self.backup_dir = self.backup_dir + '/' + date self.backup_dir = self.backup_dir + '/' + date
try: try:
@ -314,44 +305,6 @@ class Backup():
elif var == '-c' or var == '--config': elif var == '-c' or var == '--config':
self.read_conf(argv[i+1]) self.read_conf(argv[i+1])
i = i + 1
elif var == '-u' or var == '--user':
self.homedir = '/home/' + argv[i+1]
if not isdir(self.homedir):
log_message = str(datetime.now()) + ': Backup failed (see errors.log)'
self.logfile.write(log_message)
self.logfile.write('\n')
print('Backup failed')
err_message = 'Error: user "' + argv[i+1] + '"doesn\'t exist'
self.errfile.write(err_message)
self.errfile.write('\n')
if self.user is not None:
pass
# chown $USER:$USER $LOG && chmod 644 $LOG
# chown $USER:$USER $ERR && chmod 644 $ERR
# chown $USER:$USER $WARN && chmod 644 $WARN
self.logfile.close()
self.errfile.close()
self.warnfile.close()
move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log')
move(self.err_path, self.homedir + '/.simple_backup/errors.log')
move(self.warn_path, self.homedir + '/.simple_backup/warnings.log')
exit(1)
if not isdir(self.homedir + '/.simple_backup'):
try:
os.makedir(self.homedir + '/.simple_backup')
print('Created directory "' + self.homedir + '/.simple_backup".')
except:
print('Failed to create .simple_backup directory in HOME')
exit(1)
self.user = argv[i+1]
i = i + 1 i = i + 1
elif var == '-s' or var == '--checksum': elif var == '-s' or var == '--checksum':
self.options = '-arcvh -H -X' self.options = '-arcvh -H -X'
@ -367,7 +320,7 @@ class Backup():
self.logfile.close() self.logfile.close()
self.errfile.close() self.errfile.close()
self.warnfile.close() self.warnfile.close()
move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log') move(self.log_path, self.homedir + '/.simple_backup/simple_backup.log')
move(self.err_path, self.homedir + '/.simple_backup/errors.log') move(self.err_path, self.homedir + '/.simple_backup/errors.log')
move(self.warn_path, self.homedir + '/.simple_backup/warnings.log') move(self.warn_path, self.homedir + '/.simple_backup/warnings.log')
@ -394,7 +347,7 @@ class Backup():
'" --ignore-missing-args >> ' + self.log_path + ' 2>> ' + self.err_path '" --ignore-missing-args >> ' + self.log_path + ' 2>> ' + self.err_path
subprocess.run(rsync, shell=True) subprocess.run(rsync, shell=True)
return return
def main(): def main():
@ -412,7 +365,11 @@ def main():
backup.warnfile = open(backup.warn_path, 'w') backup.warnfile = open(backup.warn_path, 'w')
# Set homedir and default options # Set homedir and default options
backup.homedir = expanduser('~') try:
backup.homedir = '/home/' + os.environ['SUDO_USER']
except:
backup.homedir = expanduser('~')
backup.options = '-arvh -H -X' backup.options = '-arvh -H -X'
# Check number of parameters # Check number of parameters
@ -448,7 +405,7 @@ def main():
backup.logfile.close() backup.logfile.close()
backup.errfile.close() backup.errfile.close()
backup.warnfile.close() backup.warnfile.close()
move(backup.log_path, backup.homedir + '/.simple_backup/simple_backup.log') move(backup.log_path, backup.homedir + '/.simple_backup/simple_backup.log')
move(backup.err_path, backup.homedir + '/.simple_backup/errors.log') move(backup.err_path, backup.homedir + '/.simple_backup/errors.log')
move(backup.warn_path, backup.homedir + '/.simple_backup/warnings.log') move(backup.warn_path, backup.homedir + '/.simple_backup/warnings.log')
@ -482,7 +439,7 @@ def main():
backup.logfile.close() backup.logfile.close()
backup.errfile.close() backup.errfile.close()
backup.warnfile.close() backup.warnfile.close()
move(backup.log_path, backup.homedir + '/.simple_backup/simple_backup.log') move(backup.log_path, backup.homedir + '/.simple_backup/simple_backup.log')
move(backup.err_path, backup.homedir + '/.simple_backup/errors.log') move(backup.err_path, backup.homedir + '/.simple_backup/errors.log')
move(backup.warn_path, backup.homedir + '/.simple_backup/warnings.log') move(backup.warn_path, backup.homedir + '/.simple_backup/warnings.log')