我有一个使用Postgres数据库的Django应用程序.我需要能够备份和恢复数据库,以确保没有数据丢失,并且能够在测试期间将数据从生产服务器复制到开发服务器.
似乎有几种不同的方法可以做到这一点:
只需直接与db交互.因此,对于Postgres,我可能会使用pg_dumpall和编写脚本psql.
使用Django 附带的sqlclear/ sqlall命令.
使用Django 附带的dumpdata/ loaddata命令.因此,从要备份的db创建新的fixture,然后将它们加载到要还原的db中.
使用Django插件,如django-dbbackup.
我真的不明白这些不同技术的优点/缺点.
刚刚开始:选项1是特定于数据库的,选项3似乎更适合设置初始数据.但我仍然不确定选项4对选项2的优势.
我试图在python中处理tcpdump输出.
我需要的是运行tcpdump(捕获数据包并给我信息)并读取输出并处理它.
问题是tcpdump一直在运行,我需要在输出后立即读取数据包信息并继续执行.
我试着查看python的子进程并尝试使用popen调用tcpdump并管道stdout但它似乎没有用.
关于如何进行此操作的任何指示.
import subprocess
def redirect():
tcpdump = subprocess.Popen("sudo tcpdump...", stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
while True:
s = tcpdump.stdout.readline()
# do domething with s
redirect()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用JavaScript复制PHP字符串加密.这是PHP代码:
<?php
$iv = "1234567890123456";
$key = "aaaaaaaaaaaaaaaa";
$input = "texttexttexttext";
$encrypted = openssl_encrypt($input, "AES-256-CBC", $key, 0, $iv);
echo $encrypted;
// "ZwY1i+vqP3acszeDiscCTx/R4a6d2AtkcInmN9OTCNE="
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在JavaScript中复制它时,它会提供不同的密文:
var aesjs = require("aes-js");
var base64 = require("js-base64");
var iv = aesjs.utils.utf8.toBytes("1234567890123456");
var key = aesjs.utils.utf8.toBytes("aaaaaaaaaaaaaaaa");
var text = aesjs.utils.utf8.toBytes("texttexttexttext");
var aesCbc = new aesjs.ModeOfOperation.cbc(key, iv);
var encryptedBytes = aesCbc.encrypt(text);
var b64encoded = base64.Base64.encode(encryptedBytes);
console.log(b64encoded);
// "MTcyLDIsNjAsMTU5LDcxLDEwLDE4Myw4LDE…wyMTIsMjIyLDk3LDEyNCw1MywxNzIsMjIy"
Run Code Online (Sandbox Code Playgroud)
我不知道如何让它给出相同的输出.有任何想法吗?
aes ×1
django ×1
encryption ×1
javascript ×1
php ×1
popen ×1
python ×1
subprocess ×1
tcpdump ×1