FTP 获取数据脚本练习

题目:

在home下建立datafile文件夹,  
cd /home
touch datafile 
chmod +x datafile                    
并放置       -----在WINDOWS下            
spool命令导出emp表数据文件,要求列之间无空格的,
emp表导出到122.txt        
和emp表的数量导出到123.flg文件, 

======================================

UE编辑器里写 第一步:

set echo off;

set verify off;

set pagesize 0;

set linesize 32767;

set trimspool on;

set trimout on;

set termout off;

set feedback off;

set heading off;

spool d:\app\122.txt

select empno||'|'||ename||'|'||job||'|'||mgr||'|'||hiredate||'|'||sal||'|'||comm||'|'||deptno from emp;

spool off ;

 

spool d:\app\123.flg

select trim(count(*)) from emp;

spool off;

exit;

保存文件。命名spool_122.sql;

 

UE编辑器里写 第二步:

sqlplus scott/tiger@orcl @d:\app\spool_122.sql

保存文件。命名spool_122.bat; 执行该文件

 

 

题目:手工放置到LINUX下的/home/datafile/   122.txt 123.flg

第三步:

1、打开虚拟机VMware Workstation,输入账号root,密码root123,打开终端,输入ifconfig,得到inet addr;

2、再打开传输工具Secure File Transfer Client,输入上面的inet addr,用户名,密码,左边本地找到122.txt 和 123.flg ,右边远程,拖拉过去即可 ,这就是 手工放置

 

题目:

编写shell脚本,
用ftp命令连127.0.0.1

获取/home的datafile的123.flg

如果123.flg获取成功,
使用ftp命令获取122.txt,
获取123.flg中的条数数量,

并判断122中的数据条数

是否和得到的数量相同,

如相同对122文件改名为emp.txt 

如果emp.txt文件改名成功,
则生成emp_ftp_done.flg文件   

 ======================================================         

第四步:

打开工具Secure Shell Client, 输入上面的inet addr,用户名,密码后 连接成功

输入代码:cd /home/datafile

vi ftp.sh 

输入 i ,进入插入模式,开始shell脚本的编写

#!/bin/sh

while :

do

#先获取123.flg 标志文件    
cd /root
ftp -v -n 127.0.0.1< user root root123
cd /home/datafile
get 123.flg 123.flg
bye
EOF

#标识下载成功 下载122.txt 数据文件    
if [ -e 123.flg ];then
ftp -v -n 127.0.0.1< user root root123
cd /home/datafile
get 122.txt 122.txt
bye
EOF

fi

if [ -e 122.txt ] ;then 

#分别获取flg中条数 和 txt中数据的数量   
data_num=`cat 122.txt|wc -l`
count_num=`head -1 123.flg`
echo $data_num
echo $count_num

#如果数量相等 进行改名    
if [ $data_num=$count_num ] ;then
mv 122.txt emp.txt
if [ -e emp.txt ];then

touch emp_ftp_done.flg
fi
fi
fi 

if [ -e emp_ftp_done.flg ];then
touch emp_ftp_done.flg    
echo '成功'    
fi

# 等待5分钟                   
echo "等待5分钟"              
sleep 300      
done

  

按ESC键后 :wq 保存退出脚本

输入代码: ls

后调度脚本:sh ftp.sh

发现脚本已经成功执行

cd /root

ls

ls -l emp_ftp_done.flg

整个过程已经成功执行、结束

 

你可能感兴趣的:(Linux)