人生百味

-bash: /bin/rm: Argument list too long解决办法

2011-08-03, Posted in 人生百味, 常用 | 我来说两句 | 查看全文>>

ls | xargs -n 100 rm -fr ls

就解决了,这句解释为:输出所有的文件名(用空格分割) xargs就是将ls的输出,每100个为一组(以空格为分隔符),作为rm -rf的参数也就是说将所有文件名100个为一组,由rm -rf删除,这样就不会超过命令行的长度了.

标签: ,

java操作Windows进程

2011-07-19, Posted in Java, 人生百味 | 我来说两句 | 查看全文>>

java对平台的依赖性不太大,所以对系统的一些处理一直不太人性化,比如系统托盘到JDK6才支持,而对进程的处理,如Windows进程,虽然可以很好的操作,但用到这个功能并会的人可能不太多.这里写了一个用java对windows进程操作的例子.

这个类完了了列出所有的进程,杀死指定PID的进程,杀死指定进程名的进程等等,当然有getTaskList这个方法怎么取PID我相信你懂了,只要真正看懂这个类,估计一般需要都可以满足了.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collection;
import java.util.Hashtable;
 
public class JavaWindowsTaskManager {
 
	/**
	 * 杀死一个进程
	 * @param task 进程号
	 *            
	 */
	public static void killTask(Integer pid) {
		try {
			// 取得任务列表
			Hashtable<Integer, WindowsTask> tasks = getTaskList();
			WindowsTask task = tasks.get(pid);
			if(task != null){
				Runtime.getRuntime().exec("tskill " + pid);
			}			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 
	/**
	 * 杀死指定名称的所有进程
	 * @param taskName
	 */
	public static void killTask(String taskName){
		try{
			Hashtable<Integer, WindowsTask> tasks = getTaskList();
			Collection<WindowsTask> allTasks = tasks.values();
			for(WindowsTask task: allTasks){
				if(task.getName().equals(taskName)){
					killTask(task.getPid());
				}
			}
 
		}catch (Exception e) {
			e.printStackTrace();
		}
	}
 
	/**
	 * 返回当前机器的所有进程
	 * 
	 * @return
	 */
	public static Hashtable<Integer, WindowsTask> getTaskList() {
		Hashtable<Integer, WindowsTask> tasks = new Hashtable<Integer, WindowsTask>();
		try {
			Process process = Runtime.getRuntime().exec("taskList");
			InputStreamReader in = new InputStreamReader(process
					.getInputStream(), "GBK");
			BufferedReader reader = new BufferedReader(in);
			String taskInfo = null;
			WindowsTask task = null;
			String tmp = null;
			while ((taskInfo = reader.readLine()) != null) {
				if (taskInfo.trim().length() > 0
						&& (taskInfo.contains("Services") || taskInfo
								.contains("Console"))) {
					System.out.println(taskInfo);
					task = new WindowsTask();
					tmp = taskInfo.substring(0, 26);
					task.setName(tmp.trim());
					tmp = taskInfo.substring(26, 35);
					task.setPid(Integer.valueOf(tmp.trim()));
 
					tmp = taskInfo.substring(35, 52);
					task.setSessionName(tmp.trim());
					tmp = taskInfo.substring(52, 64);
					task.setSessionId(Integer.valueOf(tmp.trim()));
					tmp = taskInfo.substring(64, taskInfo.lastIndexOf("K"));
					tmp = tmp.replaceAll(",", "");
					task.setMem(Long.valueOf(tmp.trim()));
 
					tasks.put(task.getPid(), task);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return tasks;
	}
 
	/**
	 * 启动一个进程,传入的值可以是服务名,也可以是可执行文件的全路径名
	 * 
	 * @param task
	 */
	public static void startTask(String task) {
		try {
			Runtime.getRuntime().exec(task);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
 
}
 
class WindowsTask {
	// 映像名称
	private String name;
	// PID
	private Integer pid;
	// 会话名
	private String sessionName;
	// 会话编号
	private Integer sessionId;
	// 内存使用
	private long mem;
 
	public String getName() {
		return name;
	}
 
	public void setName(String name) {
		this.name = name;
	}
 
	public Integer getPid() {
		return pid;
	}
 
	public void setPid(Integer pid) {
		this.pid = pid;
	}
 
	public String getSessionName() {
		return sessionName;
	}
 
	public void setSessionName(String sessionName) {
		this.sessionName = sessionName;
	}
 
	public Integer getSessionId() {
		return sessionId;
	}
 
	public void setSessionId(Integer sessionId) {
		this.sessionId = sessionId;
	}
 
	public long getMem() {
		return mem;
	}
 
	public void setMem(long mem) {
		this.mem = mem;
	}
}
标签: ,

PageRank又下降了

2011-07-01, Posted in 人生百味 | 2 回复 | 查看全文>>

最近没有什么文章更新,又加了两个PageRank为0的链接.慢慢造成了我的网站PageRank由5降到4,现在直接就下降了1了,呵呵,又得全重新来过!不过无所谓,本来就不太在意这些个东西.

标签:

snapnames很给力,域名抢注成功

2011-05-05, Posted in 一起分享, 人生百味 | 7 回复 | 查看全文>>

前几天看上了一个域名,5.4号过期,于是动用Godaddy进行抢注,20.99美元就这样进了别人的腰包!然后我又跑到snapnames查看,发现本域名在snapnames预定最低需要$69!,别人不是说只需要59$吗?难道已经有人预定了?本人对域名抢注不熟悉,又怕别人抢走了*******.com这个域名,于是又花了70美元在snapnames预定.

今早7:03分,一短信发来,迷糊中一看,短信的意思大概是我的信用卡在境外消费$70美元.我心中一喜,域名到手了!同时也有不爽,近$100就为了一个域名而消失了,钱与自己想要的东西在某些时候总是冲突,心情也随之像波浪一样,高低起伏.

想要就得到它吧,它会给你好运!我一直是这样想的,所以在这个域名也确实花了不少心思,从域名筛选到预定!!怪不得老婆说比给自己的娃取名还上心.娃就要出生了,希望好的域名也能给老婆及娃带来好运与平安.

刚才看了邮箱,snapnames发过来的贺信,内容如下:
Hello ****
Congratulations on your successful transaction.
We will be processing your payment shortly for *******.com. You can expect an update within 24 hours.
Thank you,
SnapNames
还得要等上24小时才能拥有它!总结这次抢注,SnapNames果然很给力,当然,也可能是钱给力:)呵呵,反正Godaddy是没有抢到,$70绝胜$20.99,结果就是这样!

标签: , ,

用java程序向wordpress发布文章

2010-05-13, Posted in 人生百味 | 14 回复 | 查看全文>>

java向wordpress发布文章也成?当然成!不仅能发布文章,读写都不成问题,还很方便,这些便利得益于XML-RPC协议。WordPress提供了XML-RPC API使得第三方的可以与之通信来发布和修改博客。我们也可以使用这个接口做一些工作,例如:在网站首页显示最新的博客、在博客之外的页面上发表博客文章、把博客与其他内容管理系统结合等。 查看全文…

标签: , , ,