cURL 应用

下面是从网上搜集的一些使用 curl 来完成的实例,均通过本人测试。

1.获取短链接的真实地址

$ expandurl() { curl -sIL $1 | grep ^Location; }

注意:-i 表示包括 HTTP-header;而 -I 表示仅输出 HTTP-header。

2.通过终端发推

这个在半年前是可行的,现在认证都是 OAuth 认证,所以会出现下面那个 error:

$ curl -u user:pass -d status="Tweeting from the shell" http://twitter.com/statuses/update.xml

<?xml version="1.0" encoding="UTF-8"?>
<errors>
  <error code="53">Basic authentication is not supported</error>
</errors>
Continue reading

cURL 基础

curl 支持的东西比较多,协议包括常见的 FTP(S),HTTP(S),IMAP(S),LDAP(S),POP3(S),SMTP(S),TELNET,TFTP 等;以及 HTTP PUT/POST,FTP 上传,HTTP 登录认证(Basic,Digest,kerberos 等),proxy。好强大。更详细的“what can curl do” 请点击这里查看。

先学习基础的用法,简单的参数就一笔带过,比较复杂的会在下面说明。

使用 curl 来访问 jaseywang.me,将其结果输入到 jaseywang.html 中:

$ curl jaseywang.me -o jaseywang.html

跟 -o 类似,只不过是直接以默认的文件名来保存文件。下面这个即保存为 Linux 这个文本文件:

$ curl -O http://en.wikipedia.org/wiki/Linux
Continue reading

重启后 /tmp 下的文件消失

在 /tmp 下放了几个脚本在跑,重启之后文件没了,正如字面的了解,其实该目录是 TEmPorary 的。可以通过修改系统的清除时间来解决,各个发行版本不完全一样。

Ubuntu

$ sudo vi /etc/default/rcS
修改下面这个 direct,表示保持该文件 60 天,如果没有被修改的话:
TMPTIME=60

CentOS

该发行版本使用 /etc/cron.daily/tmpwatch 这个 cron 来清除 /tmp 下的文件,默认是 720h,修改成需要的时间就可以了。

最佳的方式根据 @shellexy 的建议,还是在 ~ 下面建立一个 tmp/ 目录,或者直接将 /var/tmp/ 当成 /tmp 来用。
重要的文件务必不要放在 /tmp 下面!

ref:

http://www.cyberciti.biz/faq/debian-ubuntu-removes-files-at-boot-time/

 

nohup.out 文件的产生

某台主机 / 大小是 20G,被一个叫 nohup.out 的文件占了 12G,G 了一下,发现其实是一个 stdout/stderr 文件。
简单的讲,一般 ssh 执行某个任务的时候,正常退出后,系统分配给该次登录的 session 会被 SIGHUP(1) 进程给杀死,其运行的进程也会被杀死。如果不想结束该进程,比如你想长期在后台运行某个任务,可以通过 nohup 这个命令来解决。

正常情况下,ssh 后执行 nohup 会将 stdout 至 nohup.out 文件,这也就是为什么那个文件会有 12G 的大小的原因了。当然你也可以指定输出的文件:

$ nohup ./myprogram > foo.out 2> foo.err < /dev/null &
Continue reading