常常要用shell來作時間的定時任務,尤爲是用sqoop腳本拉取數據的時候,那麼假如當你要導入數據是殘缺的時候呢,我寫了一個能自定義時間並逐條遞減的程序python
#!/bin/bashshell
. /etc/profileapache
. ~/.bash_profilebash
set -xoop
cd $(dirname $0)spa
#ttt=259code
for wl in $( seq 1 300); doblog
#statementshadoop
DATE1=$(date -d "${wl} day ago 20170725" +%Y-%m-%d) #20170725的前一天 遍歷減一天class
DATE2=$(date -d "$(($wl-1)) day ago 20170725" +%Y-%m-%d) #20170725這一天 遍歷當天
dt=${DATE1//-/} #設置時間格式用於分區
done
若是想得到當前時間遞減就把 ago 20170725去掉就能夠了
運行命令: bash -test1.sh
運行結果:
++ export PATH
+ set -x
++ dirname test1.sh
+ cd .
+ HADOOP_BIN=/workspace/carkey/hadoop/latest/bin/hadoop
+ HIVE_BIN=/workspace/carkey/apache-hive-2.1.1-bin/bin/hive
+ SQOOP_BIN=/workspace/carkey/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/sqoop
++ seq 1 100
+ for ijk in '$( seq 1 100)'
++ date -d '1 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-24
++ date -d '0 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-25
+ dt=20170724
+ for ijk in '$( seq 1 100)'
++ date -d '2 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-23
++ date -d '1 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-24
+ dt=20170723
+ for ijk in '$( seq 1 100)'
++ date -d '3 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-22
++ date -d '2 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-23
+ dt=20170722
+ for ijk in '$( seq 1 100)'
++ date -d '4 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-21
++ date -d '3 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-22
+ dt=20170721
+ for ijk in '$( seq 1 100)'
++ date -d '5 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-20
++ date -d '4 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-21
+ dt=20170720
+ for ijk in '$( seq 1 100)'
++ date -d '6 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-19
++ date -d '5 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-20
+ dt=20170719
+ for ijk in '$( seq 1 100)'
++ date -d '7 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-18
++ date -d '6 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-19
+ dt=20170718
+ for ijk in '$( seq 1 100)'
++ date -d '8 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-17
++ date -d '7 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-18
+ dt=20170717
+ for ijk in '$( seq 1 100)'
++ date -d '9 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-16
++ date -d '8 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-17
+ dt=20170716
+ for ijk in '$( seq 1 100)'
++ date -d '10 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-15
++ date -d '9 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-16
+ dt=20170715
+ for ijk in '$( seq 1 100)'
++ date -d '11 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-14
++ date -d '10 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-15
+ dt=20170714
+ for ijk in '$( seq 1 100)'
++ date -d '12 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-13
++ date -d '11 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-14
+ dt=20170713
+ for ijk in '$( seq 1 100)'
++ date -d '13 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-12
++ date -d '12 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-13
+ dt=20170712
+ for ijk in '$( seq 1 100)'
++ date -d '14 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-11
++ date -d '13 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-12
+ dt=20170711
+ for ijk in '$( seq 1 100)'
++ date -d '15 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-10
++ date -d '14 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-11
+ dt=20170710