提交 f59cb819 authored 作者: blu's avatar blu

new upload script with /mnt/sd card as backup

上级 12f0e30b
...@@ -14,7 +14,7 @@ kSchedIntervalSec = 3 * 60 ...@@ -14,7 +14,7 @@ kSchedIntervalSec = 3 * 60
kSliceIntervalSec = 30 kSliceIntervalSec = 30
## storage water marks ## storage water marks
kSDCardFreeMBWMLow = 300 kSDCardFreeMBWMLow = 500
kSDCardFreeMBWMHigh = 1024 # not used, instead we use timeshift below kSDCardFreeMBWMHigh = 1024 # not used, instead we use timeshift below
## clean from the oldest files, total 1 hour ## clean from the oldest files, total 1 hour
kSDCardCleanupTimeShiftMinutes = 60 kSDCardCleanupTimeShiftMinutes = 60
...@@ -93,18 +93,19 @@ def cleanup(target): ...@@ -93,18 +93,19 @@ def cleanup(target):
mbfree = st.f_bavail * st.f_bsize/1024/1024 mbfree = st.f_bavail * st.f_bsize/1024/1024
logger.info("mb free: {}\n{}".format(mbfree, st)) logger.info("mb free: {}\n{}".format(mbfree, st))
if mbfree > kSDCardFreeMBWMLow: if mbfree > kSDCardFreeMBWMLow:
logger.info('no need to free space')
pass pass
else: else:
# find out the oldest N files in SD card # find out the oldest N files in SD card
# ALERT: must use generator to save memory, otherwise it prons to OOM by stacks of files on SD card # ALERT: must use generator to save memory, otherwise it prons to OOM by stacks of files on SD card
number_files = int(kSDCardCleanupTimeShiftMinutes * 60/kSliceIntervalSec) number_files = int(kSDCardCleanupTimeShiftMinutes * 60/kSliceIntervalSec)
oldest_n_mtime = [] # ten digits oldest_n_mtime = [None for _ in range(number_files)] # ten digits
oldest_n_files = [] oldest_n_files = [None for _ in range(number_files)]
cnt = 0 cnt = 0
for dir_ in Path(target).iterdir(): for dir_ in Path(target).iterdir():
if not dir_.is_dir(): if not dir_.is_dir():
continue continue
for file in Path(dir_.absolute()): for file in Path(dir_.absolute()).iterdir():
if not file.is_file(): if not file.is_file():
continue continue
mts = file.stat().st_mtime mts = file.stat().st_mtime
...@@ -125,6 +126,7 @@ def cleanup(target): ...@@ -125,6 +126,7 @@ def cleanup(target):
# clean up # clean up
for f in oldest_n_files: for f in oldest_n_files:
os.remove(str(f)) os.remove(str(f))
logger.info('removed file %s', f)
def lookup(src, file, backup): def lookup(src, file, backup):
file = src+ '/' + file file = src+ '/' + file
...@@ -192,12 +194,14 @@ def upload_file(file): ...@@ -192,12 +194,14 @@ def upload_file(file):
return success return success
# 1. backup & cleanup
# 2. upload jobs
if __name__ == "__main__": if __name__ == "__main__":
#list_files_by_ext('.', 'json') '''
# make sufficient margins for long running uploader & slicer 1. backup & cleanup
#logger.info(files) 2. upload jobs
'''
# single instance
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', 45431))
logger.setLevel(logging.INFO) logger.setLevel(logging.INFO)
try: try:
# #
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论