python - Dropbox 中的文件夹名称
问题描述
我在命名 Dropbox 文件夹和文件时遇到了一些问题
我想将 bash 脚本转换为 python 并且 bash 可以完美地工作,但是 python 会在其中创建文件夹日志,名称如“$(hostname)”和文件“log_$(date +%F-%H:%M)_$ (主机名).gz"
import requests
import logging
import os
log = logging.getLogger(__name__)
def test():
os.system('mkdir - p /var/log/salt/$(hostname)')
os.system('mv /var/log/salt/minion /var/log/salt/$(hostname)/log_$(date +%F-%H:%M)_$(hostname)')
os.system('gzip --keep -f /var/log/salt/$(hostname)/log_$(date +%F-%H:%M)_$(hostname)')
os.system('rm /var/log/salt/minion')
return {"msg": "log made in Device")
headers = {
'Authorization': 'Bearer TOKEN',
'Dropbox-API-Arg': '{"path": "/logs/$(hostname)/log_$(date +%F-%H:%M)_$(hostname).gz"}',
'Content-Type': 'application/octet-stream',
}
data = open('/var/log/salt/$(hostname)/log_$(date +%F-%H:%M)_$(hostname).gz', 'rb').read()
response = requests.post('https://content.dropboxapi.com/2/files/upload', headers=headers, data=data)
return {"msg": "Copied to Dropbox!"}
解决方案
import requests
import os
import datetime
import socket
import logging
log = logging.getLogger(__name__)
def test():
time = datetime.datetime.now().strftime("%Y-%m-%d-%H:%M")
hostname = socket.gethostname()
dropboxpath = '/logs/{}/log_{}_{}.gz'.format(hostname, time, hostname)
filenamelog = '/var/log/salt/{}/log_{}_{}'.format(hostname, time, hostname)
gzipfilenamelog = filenamelog+'.gz'
os.system('mkdir - p /var/log/salt/{}'.format(hostname))
os.system('mv /var/log/salt/minion {}'.format(filenamelog))
os.system('gzip --keep -f {} > {}'.format(filenamelog, gzipfilenamelog))
os.system('rm /var/log/salt/minion')
headers = {
'Authorization': 'Bearer TOKEN',
'Dropbox-API-Arg': '{"path":"' + dropboxpath + '"}',
'Content-Type': 'application/octet-stream'
}
data = open(gzipfilenamelog, 'rb').read()
response = requests.post('https://content.dropboxapi.com/2/files/upload', headers=headers, data=data, timeout=90)
return {"msg": "Copied to Dropbox!"}
推荐阅读
- 2sxc - 2SXC 导入内容项 - 超链接文件库
- sql - 在自己的字段中填充数据
- prolog - 简单的 Prolog 谓词 - 语句总是被评估为假
- python - 写入csv时如何保留空值
- java - 如何在 java 中的 eclipse 中正确地将位置文本文件的名称添加到 Scanner 文件阅读器中
- python - 如何用张量流准确地四舍五入
- javascript - Leaflet CRS.Simple 教程中的边界是如何计算的?
- python - 如何控制wordcloud图片大小
- sql - Row_Number 和分区
- go - 在 Gorilla CustomLoggingHandler 中获取 JWT 数据