我计划压缩所有 Oracle 数据库服务器的 Oracle 导出转储文件,以减少其磁盘上的空间使用量。
我的问题是:您知道用于压缩此类文件的任何好的压缩实用程序/算法吗?
我们将运行一个 nginx 反向代理,它将通过互联网从后端提取数据。
我们所说的通过互联网是指后端计算机不会与前端反向代理位于一个局域网上。
我们认为,在通过互联网发送这些请求之前,最好先处理一下这些请求。
在我看来,它应该像这样工作:
客户端请求带有接受编码标头或 gzip 的内容。
反向代理将其发送到后端服务器。
由于发送了 gzip 的接受编码标头,后端会压缩此内容。
请求在链上一路发送压缩。
我们都可以做到这一点,因为它非常简单。我的问题是,如果我们在 nginx 反向代理端启用了 gzip 压缩,这将如何工作?
nginx 会尝试对已经 gzip 压缩的内容进行 gzip 压缩吗?
希望这是有道理的。谢谢。
更新1:
我了解缓存已经(以及此服务)gzip 内容的含义。我们将修改缓存密钥以包含接受编码标头,从而根据用户代理可以接受的内容提供(并缓存)正确压缩/未压缩的内容。
我创建了一个包含 diff 文件的文件,diff-files.txt其中包含 6000 多个文件路径。现在我想根据这些文件创建一个 zip。
我知道我可以使用以下命令压缩多个文件:
zip diffedfiles.zip file1 folder1 -r
Run Code Online (Sandbox Code Playgroud)
但这不适用于 6000 多个文件。有没有办法根据 的内容压缩它diff-files.txt?
zip diffedfiles.zip {diff-files.txt} -r
Run Code Online (Sandbox Code Playgroud)
像这样的东西?
压缩磁盘上的旧文件的利弊是什么?我读过压缩旧文件会降低访问压缩文件时的性能。我的笔记本电脑中有数千兆字节的旧文件;值得权衡吗?
我在这台笔记本电脑上安装了以下内容(这是我的游乐场/测试系统):
我想将 IIS7 中的 HTTP GZIP 压缩级别从 0 更改为 4,如这些文章中所述:
但是,我在它们(或http://www.iis.net/ConfigReference/system.webServer/httpCompression)中看不到任何关于如何将压缩级别从 0 更改为 10 的参考。
IIS 中的压缩页面只有勾选框来启用/禁用动态和静态压缩。
我的Web.config文件有一行:
请你能告诉我我该怎么做吗?
我在 SQL Server 代理作业步骤中使用 PowerShell 自动将 .ZIP 文件内容提取到目录。
基于这个问题的最高投票答案:How to zip/unzip files in Powershell?
我正在使用此代码:
$dir_source = "\\myserver\myshare\"
$dir_destination = "\\myserver2\myshare2\"
$file_source = Get-ChildItem -Path (Join-Path -Path $dir_source -ChildPath "test.zip")
$shell_app = New-Object -com shell.application
$zip_file = $shell_app.namespace($file_source.FullName)
$destination = $shell_app.namespace($dir_destination)
$destination.Copyhere($zip_file.items(),20)
Run Code Online (Sandbox Code Playgroud)
CopyHere 方法的 vOptions 可选参数是 20,它指定“不显示进度对话框”。(4) 和“对显示的任何对话框用“全部是”来响应。” (16).
此参数在 PowerShell 脚本编辑器中按预期工作(我使用的是 PowerGUI 脚本编辑器)。我可以运行脚本,然后再次运行它(覆盖场景),脚本完成时没有错误,也没有对话框。但是,当目标数据库中已存在文件时,在 SQL Server 代理 PowerShell 作业步骤中执行相同的代码会导致作业挂起。
重现步骤:
- Instantiate code in a SQL Server 2008 SQL Server Agent Job step
- Start the SQL job
- …Run Code Online (Sandbox Code Playgroud) 我希望以下命令将 zip 文件中顶级目录的内容提取到目标目录:
unzip file.zip topdir/\* -d destdir
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是destdir/topdir. 我正在寻找的是类似于
cp -r topdir/* destdir
Run Code Online (Sandbox Code Playgroud)
如何在没有topdir路径的情况下提取内容?
我正在尝试使用该zip -r命令来压缩包含两个文件的文件夹。我需要用两个文件传递文件夹的绝对路径(/path/to/my/files/),这会导致所有文件夹都被压缩,因为我只需要(files/)压缩最后一个文件夹及其内容,以便在解压缩文件时,只有一个文件夹和其中的两个文件。如何修改命令以便能够在仅保留最后一个文件夹的同时传递参数中的绝对路径?
作为简单备份例程的一部分,我正在尝试将单个目录中的所有文件压缩到不同的文件夹中。
代码运行正常,但不生成 zip 文件:
$srcdir = "H:\Backup"
$filename = "test.zip"
$destpath = "K:\"
$zip_file = (new-object -com shell.application).namespace($destpath + "\"+ $filename)
$destination = (new-object -com shell.application).namespace($destpath)
$files = Get-ChildItem -Path $srcdir
foreach ($file in $files)
{
$file.FullName;
if ($file.Attributes -cne "Directory")
{
$destination.CopyHere($file, 0x14);
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法我哪里出错了?
在我的 nginx.conf 中,我有:
gzip on;
gzip_static on;
gzip_buffers 16 8k;
gzip_comp_level 9;
gzip_http_version 1.0;
gzip_min_length 1000;
gzip_types text/plain text/css image/x-icon image/bmp image/png image/gif image/jpeg image/jpg application/json application/x-javascript text/javascript;
gzip_vary on;
gzip_proxied any;
Run Code Online (Sandbox Code Playgroud)
所以,如果我在我的服务器上获取图片的标题:
spiroo@glamdring:~$ curl -I http://static.mysite.com/g/pics/big_6e1855d844ebca560379139e75942f669655f.jpeg
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 04 Apr 2013 13:00:20 GMT
Content-Type: image/jpeg
Content-Length: 5336
Last-Modified: Mon, 25 Mar 2013 13:28:02 GMT
Expires: Fri, 04 Apr 2014 13:00:20 GMT
Cache-Control: max-age=31536000
Pragma: public
Cache-Control: public, must-revalidate, proxy-revalidate
Accept-Ranges: bytes
Run Code Online (Sandbox Code Playgroud)
但是如果我在 nginx.conf 中关闭 …
compression ×10
gzip ×3
nginx ×2
powershell ×2
.net ×1
copy ×1
http-headers ×1
iis-7 ×1
oracle ×1
terminal ×1
ubuntu ×1