❶ ftp脚本抓取数据 shell脚本怎么写
假设需要每天11:00自动使用ftp从服务器server下的一个目录下载文件到本地。
重点:ftp命令如何获取用户名,密码。
vi ftps //编写脚本ftps
#!/usr/bin/sh
ftp -i -in <<!
open 192.168.1.171 //连接到服务器(假设为192.168.1.171)
user $ftpuser $password //用户名和密码
bin //以二进制传送
cd / //到ftpuser的根目录(
passive //如果出现no route to host提示,使用passive模式
mget $1 //获取命令后加的参数(文件或者文件夹)
bye //退出
!
保存退出
chmod +x ftps
crontab -e
00 11 * * * /$path/ftps
保存退出
这样在每天11点的时候就可以自动ftp下载数据了。
❷ 求每日定时在服务器的FTP上取数据文件的源码(JAVA)
这个是可以向服务器端发送文字的程序,就是在客户端发送一句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){}
}
}
}
}
❸ Linux定时ftp脚本
计算机自己 tar 压缩,之后 ftp 上传这个文件到备份服务器上。
其实这个时候,ftp 确实没用,因为双 Linux/Unix 机器有很多办法备份。
最简单的办法就是备份机开网络存储。服务器直接挂载备份服务器到网络存储之后复制备份数据过去。
❹ FTP服务器与客户端资料 数据定期更新脚本怎样写
客户端:
1 *.ftp 2 *.bat 3 WINDOWS计划任务
第一步: 脚本语言写在tongbu.ftp 中
open 192.168.0.99
administrator
d:
Cd jieshouwenjian
Bin
Prompt
Mget *.*
Bye
****** Mget 是下载 Mput 是上传 ******
第二步:写批处理文件 来执行你的脚本 tongbu.bat
ftp -s:d:\tongbu.ftp
第三步:打开WINDOWS计划任务 设定定时执行
控制面板——计划任务
服务器端:
建立好 用户名:administrator 密码:无 的用户
❺ shell脚本怎样用ftp抓取新增文件。文件不定时更新,先增量判断,再抓取
可以使用inotifywait。可以网络一下安装方法
记得之前用过类似:inotifywait -me close_write aaa/ > bbb.txt(大致是这样)
通过监控aaa目录下文件关闭动作来判断FTP传送写入文件结束,并将其文件名写入bbb.txt
❻ suse 定时ftp任务 脚本怎么写
重点是这一句:ftp-v-i-n218.200.245.84>/home/mediation/log/ftpcdr.log从这一句看出所有的FTP命令都是从“/home/mediation/config.billing”此文件中读取的,所以你要的FTP命令都在这个文件中。
❼ 求一shell脚本:定时备份日志文件然后用FTP上传到指定IP的机器上。
写个你参考吧 (备份日志文件就不用说了吧 你的主要难点就是在FTP上传这里)
定时的话就放在crotable里面去做。
USERNAME=root
PASSWORD=123456
PATH=/root/bak/
rundir=....(你的日志路径)
SERVERIP=192.168.1.1
getfilenametofile(){
(
echo "user $USERNAME $PASSWORD"
echo "ascii"
echo "hash"
echo "cd $PATH"
echo "ls *.bak filename"
echo "y"
echo "close"
echo "bye"
)| ftp -n -i $SERVERIP 1> $rundir/getfileok.log 2> $rundir/getfileerr.log
}
❽ FTP自动备份脚本
换空间,数据的备份与恢复具体步骤操作!
一 备份数据
1,利用PW后台的数据备份功能进行备份.注意的是在备份数据的时候,为了数据的完整性,建议最好先关闭论坛,后台更新所有缓存和索引.
2,利用phpmyadmin,进行备份,具体如何备份,这里就不介绍.不清楚的可以查阅相关文档,很简单的.这里备份的文件是一个独立sql文件.
以上方法一般适用与中小型论坛的备份,数据量比较小的时候还是很实用的,一般多为虚拟主机用户使用.大型论坛的备份一般是 3,4两种操作..主要是比较简单操作,一些我个人认为比较复杂且不是很实用的方法就不介绍了不如通过Mysqlhot,使用binlog机制,增加mysql的事物日志记录等,这里就不介绍了.以下下操作一般有服务器权限的朋友才可以的.
3,直接复制或者打包数据库文件,复制文件夹,大家应该都明白,我们来讲打包,linux下用tar命令实现简单有效,速度快.Win 下,直接用winrar或者winzip 搞定.注意需要暂停mysql服务.
4,Mysqlmp,是mysql自带的脚本,假如数据库名为abc,用户名为:abcuser,密码为123,,那应该使用
命令:
mysqlmp -uabcuser -p123 adc pwabc_bak.sql
,pwabc_bak.sql 你可以任意的命名.
二 数据还原
1,针对第一种备份方法,也是最普遍使用的.在恢复论坛数据的时候,要关闭php.ini文件中的safe mode,恢复完数据后,再打开SAFE MODE就可以了。(自己服务器得才需要此设置,普通虚拟空间用户不用此设置)
用FTP软件下载老论坛所有文件
将所有文件上传至新空间
打开网页 你的论坛地址/admin.php 用你的论坛创始人帐号登陆
数据恢复(随便点一个文件,程序会自动将剩余文件导入的)
以上方法可保留所有数据及插件和模板。
对于不需要模板的或者不需要原来的插件的
老论坛备份数据,用FTP拉到本地。(具体在data目录下)
上传程序包里的文件到新空间,全新安装
用FTP软件将备份的数据上传到新空间的data目录下
用论坛创始人帐号进入后台,数据恢复
如果后台数据库忘记了,可以直接修改sql_config.php里的数据库帐号和创始人帐号密码!这里输入的创始人密码不能直接是明文.需要是MD5加密过后的.
这里就给大家一个简单的 MD5密文 [] 明文 [123456]之后就可以通过/admin.php 刚才修改的帐户密码登陆论坛了..
2,对于phpmysql备份的数据,在2M以下可以直接导入数据库中(至于怎么导,看相关文档,很简单.)数据量很大的情况只能到服务器上,服务器上 mysql 命令导入(具体导入将在"4"中介绍)虚拟主机用户,那么就得联系你的空间商,让他们协助完成数据的恢复.
3,对于打包数据库文件的,可以直接解压 把数据库文件 放到你数据库名的目录下. 在linux下注意数据库文件的权限.一般都是mysql:mysql. Win 下关系不是很大,除非你做了特殊的权限设置.
4,对于mysqlmp 导出数据, 按照备份数据中的举例用户来演示,
则命令为:
mysql -uabcuser -p123 abc abc_bak.sql
注意:
无任何错误一般来说就是正常完成。通常在使用 phpmyadmin 导入的sql脚本中有create database语句,会导致导入数据出错,因为database 已经存在,把这段语句删除之,再次检查客户的建表语句前是否有drop表的语句,如果没有,而原数据库存在同名表格,也会出错,这时需要清空原数据库.