Shell脚本

Shell脚本模板

#!/bin/bash
#Usage:
#      ./start-comm-job_pro.sh
#------------------------------------------------------
#Filename:              start-comm-job_pro.sh
#Revision:              1.0
#Date:                  2017/10/30
#Author:                
#Description:     
#Notes:
#------------------------------------------------------
#定义该脚本执行必须输入两个参数:行业ID和日期,如果参数输入个数少于2就会报错
#调用语句如下sh /home/shutong/crawl/script/start-comm-job_pro.sh ${industry_id} ${date_id}
Usage="Usage: $0 industry_id date_id "
#[ $# -lt 2 ] && echo "${Usage}" && exit -1

#define alias time and bring into effect,alias就是命名一个较长命令的别名,这里用dt代替'date +%Y-%m-%d" "%H:%M:%S',后面的shopt命令就是使这个别名转化在整个脚本里生效
alias dt='date +%Y-%m-%d" "%H:%M:%S'
shopt -s expand_aliases

#script_dir=/home/shutong/crawl/script/
#mysql_dir='/home/shutong/mariadb-5.5.57-linux-x86_64/bin'

#date_hour_id=`date -d "1 days ago" +%Y%m%d%H`

#date_id=`date -d "0 days ago" +%Y%m%d`

#判断日期是否有参数,如没有参数默认取当天,参数优先
if [ ! -n "$1" ];then 
   date_id=`date -d "0 days ago" +%Y%m%d`
   #echo "参数不存在,默认参数为今天${date_id}"
else
   date_id=$1
   #echo "参数存在:${date_id}"
fi

#定义数据库名称
db='label'
#mysql服务器地址
host=192.168.0.112
#mysql用户名
user=root
#密码
passwd=root 

#定义数据文件,格式为:${industry_id}_${date_id}.csv,
#存放目录统一放在/home/shutong/crawl/data/${industry_id}
#例如:汽车行业20171208日数据:004004_20171208.csv
filename="/home/shutong/crawl/data/${industry_id}/${industry_id}_${date_id}.csv"

#把数据文件导入src_url表中
function load_to_src_url()
{
  filename=$1
  tab_nm=$2
 #cd ${mysql_dir}
 mysql -h ${host} -u${user} -p${passwd} -e "use ${db}; delete from "$2" where date_id = '${date_id}';
   LOAD DATA LOCAL INFILE '${filename}' INTO TABLE "$2" character set utf8
FIELDS TERMINATED BY '^' 
LINES TERMINATED BY '
';
 "
}


#开始爬取数据
python /home/shutong/crawl/36bigdata/crawl_bigdata_article.py "${date_id}"

#文章标题数据存放路径
#filename="/home/shutong/crawl/36bigdata/input/${date_id}/article_title_info_${date_id}.csv"
#load_to_src_url ${filename} "src_article_title"

#文章内容数据存放路径
#filename="/home/shutong/crawl/36bigdata/input/${date_id}/article_context_info_${date_id}.csv"
#load_to_src_url ${filename} "src_article_context"

#hdfs dfs -mkdir -p /input/36bigdata/src_article_title/"${date_id}"

#hdfs dfs -put ${filename} /input/36bigdata/src_article_title/${date_id}

#hive -e "use label; alter table src_article_title add partition(date_id=${date_id}) location 'hdfs://hadoop:9000/input/36bigdata/src_article_title/${date_id}';"

 Shell日期参数

#判断是否有参数,如没有参数默认取当天,参数优先
if [ ! -n "$2" ];then 
   date_id=`date -d "0 days ago" +%Y%m%d`
   #echo "参数不存在,默认参数为今天${date_id}"
else
   date_id=$1
   #echo "参数存在:${date_id}"
fi

#日期的前3天
before_3_days=`date -d "${date_id} 3 days ago" +%Y%m%d`
echo "`dt`:date_id is--${date_id}"
echo "`dt`:before_3_days--${before_3_days}"
原文地址:https://www.cnblogs.com/Jims2016/p/8206816.html