首页 > 系统相关 >Shell实现FTP上传文件,并保存执行日志

Shell实现FTP上传文件,并保存执行日志

时间:2022-11-01 12:38:47浏览次数:50  
标签:FTP Shell LOG getSystemTimeFun echo FILE 日志 LOCAL DIR


分享知识  传递快乐

 

这篇文章是 ​​Linux实现FTP上传下载​​ 的续篇文章,关于FTP具体语法使用,请参考《​​Linux实现FTP上传下载​​》。

FTP上传文件并保存执行日志

#!/bin/bash
################################################
#
# 定义函数
#
################################################

#获取当前时间
function getSystemTimeFun(){
echo $(date "+%Y-%m-%d %H:%M:%S")
}

#创建文件
function createFile(){
if [ ! -e $1 ]; then
touch $1
echo $(getSystemTimeFun) " Create file successfully!" >> $LOCAL_LOG_FILE
fi
}


################################################
#
# 定义全局变量
#
################################################

LOCAL_SYS_DATE=$(date +%Y%m%d)
LOCAL_ROOT_DIR=/home/weblogic/syn/antgroup
LOCAL_FILE_DIR="${LOCAL_ROOT_DIR}/data/${LOCAL_SYS_DATE}-confirm/"
echo "LOCAL_FILE_DIR: "$LOCAL_FILE_DIR

LOCAL_LOG_DIR="${LOCAL_ROOT_DIR}/logs/"
LOCAL_LOG_FILE="${LOCAL_LOG_DIR}${LOCAL_SYS_DATE}_confirm2.log"
echo "LOCAL_LOG_FILE: "$LOCAL_LOG_FILE

#判断目录是否存在,没有则创建
$(createFile $LOCAL_LOG_FILE)


cd $LOCAL_FILE_DIR
LOCAL_ZIP_FILE="${LOCAL_SYS_DATE}_continuous_confirm.zip"
echo "LOCAL_ZIP_FILE: "$LOCAL_ZIP_FILE

#统计文件夹下的文件个数,如果小于等于0则不上传
LOCAL_FILE_SIZE=`ls -l |grep "^-"|wc -l`
echo "LOCAL_FILE_SIZE : "$LOCAL_FILE_SIZE
echo $(getSystemTimeFun) " Number of uploaded files: ${LOCAL_FILE_SIZE}" >> $LOCAL_LOG_FILE
if [ $LOCAL_FILE_SIZE -le 0 ]; then
echo $(getSystemTimeFun) " [not exist] File not found: ${LOCAL_FILE_SIZE}" >> $LOCAL_LOG_FILE
exit;
fi

# 检查是否已经发送
CHECK_IS_SEND=$(cat $LOCAL_LOG_FILE | grep $LOCAL_ZIP_FILE | wc -l)
echo "CHECK_IS_SEND: "$CHECK_IS_SEND
if [ $CHECK_IS_SEND -gt 0 ]; then
echo "is already sent!"
echo $(getSystemTimeFun) " is already sent! " >> $LOCAL_LOG_FILE
exit
fi


#远程目录
ALI_DIR="/upload/continuous/${LOCAL_SYS_DATE}"

echo $(getSystemTimeFun) " Remote service file:${ALI_DIR}/${LOCAL_ZIP_FILE}" >> $LOCAL_LOG_FILE
echo $(getSystemTimeFun) " Local files: ${LOCAL_FILE_DIR}" >> $LOCAL_LOG_FILE
echo $(getSystemTimeFun) " Begin...." >> $LOCAL_LOG_FILE


################################################
#
# lftp远程上传
#
################################################

script -q -a $LOCAL_LOG_FILE -c "lftp -u xxxxxx,xxxxxx sftp://xxx.xxx.xxx.xxx:xx<<EOF
mkdir ${ALI_DIR}
cd ${ALI_DIR}
lcd ${LOCAL_FILE_DIR}
put ${LOCAL_ZIP_FILE}
by
EOF"


echo "" >> $LOCAL_LOG_FILE

 

说明:

  • ​​函数定义和使用​​,以function开头的方法称之为Linux脚本函数
  • ​​script命令​​ - 记录终端交互输出到屏幕上的日志

 

 

 

 

 

 

———————————
如有不足请留言指正
相互学习,共同进步

标签:FTP,Shell,LOG,getSystemTimeFun,echo,FILE,日志,LOCAL,DIR
From: https://blog.51cto.com/u_15856116/5813263

相关文章

  • Shell函数(函数定义、函数变量、函数调用、函数传参、函数返回值、获取函数返回值)
    分享知识传递快乐 1、函数定义linuxshell可以用户定义函数,然后在shell脚本中可以随便调用。Shell函数定义的语法格式如下:[function]funname[()]{函数体[retu......
  • Shell实现FTP下载文件,并保存执行日志
    分享知识 传递快乐 这篇文章是 ​​Linux实现FTP上传下载​​ 的续篇文章,关于FTP具体语法使用,请参考《​​Linux实现FTP上传下载​​》。FTP下载文件并保存执行日志#!/......
  • Zabbix技术分享——使用Zabbix6.0监控业务日志
    企业日常IT运维过程中,常会碰到需要监控业务日志的情况,以下将介绍如何使用Zabbix6.0监控业务日志。 应用场景描述:企业IT运维部门使用自建zabbix平台对公司某业......
  • shell函数
    shell函数一,函数的定义(两种方式)1.function函数名{command}//这是一种规范写法2.函数名(){//最常用因为最简洁command}函数定义完之后并不会自动......
  • shell循环,函数
    ###########################函数function语法:函数名(){returnm}函数名=========如:#!/bin/basholdboy(){echo'iamoldboy'}oldboy ####################......
  • crontab定时清理文件,java日志,es记录等
    简单运维开发环境硬件配置小,经常要清理空间.写个简单的清理脚本去运维.清理java日志.#cleanLog.sh#日志目录LOG_DIR=/path/to/logcd$LOG_DIR#历史日志......
  • mysql8 清理general_log.csv日志文件
    今天mysql看磁盘空间不足,排查出来general_log.csv占了800G  1.功能如下:开启general_log,会将所有到达MysqlServer的SQL语句记录。一般不会开启开功能,因为log的量会......
  • shell循环语句
    循环语句的作用在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如,根据通讯录中的姓名列表创建系统账号,根据服务......
  • 无celery日志
    解释1:日志、日志你把你想打印的内容写道logger中吗? 还有就是日志在哪是看:下面的xxx是谁,你写的app自然将来在应用日志中找啊importlogging......
  • 运行shell脚本提示“语法错误: 未预期的文件结尾”
    当时正在写一个小需求,shell脚本实现的功能是:通过read读入变量实现加减剩除等,而且要判断一个输入的2个变量是否为空,为空值则退出。输入的变量不是数字则退出。自己编写的代......