1、先写个下载文件的脚本download.sh,用到了‘sshpass’工具(这个工具要安装,安装步骤很简单)传服务器密码【除了这个还有其他方法可以免输密码】
date=$(date +%Y-%m%d)
sshpass -p 密码 scp root@ip:/**/XXX1_$date.csv /**/
sshpass -p 密码 scp root@ip:/**/XXX2_$date.csv /**/
sshpass -p 密码 scp root@ip:/**/XXX3_$date.csv /**/
这是去服务器下载,反过来写在服务器上运行就是发送(用发送的话可以加个文件是否存在的判断比较严谨)
2、crontab -e创建一个定时任务定时执行download.sh
如:00 23 * * * /**/download.sh每天晚上11点执行
以上,我写的很简洁你可以完善脚本,希望能对你有用
这个是可以向服务器端发送文字的程序,就是在客户端发送一句hello在服务器也可以接受到hello,这个程序可以修改一下就可以了。具体修改方法是增加一个定时器,然后把字符流改成字节流,现在有点忙,你先研究啊,近两天帮你写写看。服务器端:
import java.net.*
import java.io.*
public class DateServer {
public static void main(String[] args) {
ServerSocket server=null
try{
server=new ServerSocket(6666)
System.out.println(
"Server start on port 6666...")
while(true){
Socket socket=server.accept()
new SocketHandler(socket).start()
/*
PrintWriter out=new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
)
out.println(new java.util.Date().toLocaleString())
out.close()
*/
}
}catch(Exception e){
e.printStackTrace()
}finally{
if(server!=null) {
try{
server.close()
}catch(Exception ex){}
}
}
}
}
class SocketHandler extends Thread {
private Socket socket
public SocketHandler(Socket socket) {
this.socket=socket
}
public void run() {
try{
PrintWriter out=new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
)
out.println(
new java.util.Date().
toLocaleString())
out.close()
}catch(Exception e){
e.printStackTrace()
}
}
}
客户端:
package com.briup
import java.io.*
import java.net.*
public class FtpClient {
public static void main(String[] args) {
if(args.length==0) {
System.out.println("Usage:java FtpClient file_path")
System.exit(0)
}
File file=new File(args[0])
if(!file.exists()||!file.canRead()) {
System.out.println(args[0]+" doesn't exist or can not read.")
System.exit(0)
}
Socket socket=null
try{
socket=new Socket(args[1],Integer.parseInt(args[2]))
BufferedInputStream in=new BufferedInputStream(
new FileInputStream(file)
)
BufferedOutputStream out=new BufferedOutputStream(
socket.getOutputStream()
)
byte[] buffer=new byte[1024*8]
int i=-1
while((i=in.read(buffer))!=-1) {
out.write(buffer,0,i)
}
System.out.println(socket.getInetAddress().getHostAddress()+" send file over.")
in.close()
out.close()
}catch(Exception e){
e.printStackTrace()
}finally{
if(socket!=null) {
try{
socket.close()
}catch(Exception ex){}
}
}
}
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)