本来打算在客户端和服务器之间建立长连接,然后用定时器来实现定时发送文件,之后发现比较麻烦,朋友推荐用linux自带的crontab,我就试了一下,挺好用的。
cron是一个Linux下的后台进程,用来定期的执行一些任务。我用的是Ubuntu,所有命令只能保证在Ubuntu下有效,但其他系统应该也差不多。
目前的ubuntu一般自带crontab,关于怎么启动和配置网上资料有一堆。
给crontab添加新任务
crontab -e
来打开你的用户所属的crontab文件。第一次用这个命令,会让你选择文本编辑器,我选的是vim。选定的编辑器也可以使用(注意,第一次选错了也不要慌!可用下面的命令来处理)
select-editor
通过vi编辑器输入任务,任务格式如下
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
我需要的是客户端定时启动程序发送文件到服务器端。要注意服务器端要先启动,由于我在一台虚拟机上设置的,所以传输时间控制的不太好。
每分钟执行一次服务器端程序,及客户端程序
crontab -e后,进入vi界面
*/1 * * * * /path/server(可执行文件)
*/1 * * * * /path/client(可执行文件)
大功告成,实现客户端每分钟向服务器端更新一次信息。