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

new upload script with /mnt/sd card as backup

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