curl 命令行实用工具可以获取和上传数据,所以它非常适合于将本地文件传输到远程服务器。然而更有价值的是,curl 的基础是 libcurl 库,该库提供了丰富的应用程序编程接口 (API),允许您将各种 curl 特性集成到您自己的应用程序中。C、C++、PHP 和 Perl,这是许多语言中能够利用 libcurl 的 4 种编程语言。如果您的系统中没有 curl 和 libcurl,您可以从 libcurl 主页下载其源代码。
因为 curl 可以将本地文件复制到远程服务器,所以它非常适合用于完成少量信息的备份工作。例如,清单 2 介绍了一个 Shell 脚本,出于安全考虑,它可以用来将一个装满了数据库转储信息的目录复制到远程 FTP 服务器。
清单 2. 使用 curl 以远程的方式保存数据库转储
foreach db (mydns mysql cms tv radio)
/usr/bin/mysqldump --ppassWord --add-drop-table -Q --complete-insert $db > $db.sql
end
find dbs -mtime -1 -type f -name '*.sql' -print | foreach file (`xargs`)
curl -n -T $file ftp://ftp1.archive.example.com
end
curl -n 命令强制 curl 读取您的 .netrc 文件。-T 选项告诉 curl 将指定的文件上传到给定的 URL。如果您省略了目标文件名,那么 curl 将简单地重用上传文件的名称。
正如您可能猜测到的,curl 具有比 wget 更多的选项。您需要阅读 curl 的 man 页面,并将其记在心中。curl 项目还维护了一份使用列表,其中包括关于如何使用 HTTP POST 和 PUT 命令、如何提供登录凭据、如何使用 SSL 证书、以及如何调试 curl 请求的说明。一个简单的技巧:尝试使用 curl -v --trace-ascii ... 来生成跟踪信息。
六处需要说明的地方
标签: