写一个jenkins构建shell脚本批量建表的脚本

Shell脚本实现批量下载网络图片代码分享_linux shell
作者:用户
最近为了做好一个天气预报的项目,需要从Yahoo下载一些天气图标,但是由于图标比较多,有80多张。图标是存储在Yahoo Image网站上的。迅雷不支持https的下载,虽然可以在浏览器下载,但是在浏览器下载太慢,于是写了一个批量下载图片资源的Shell脚本,完美的解决了这个问题。Yahoo天气图标的地址规则如下:https://s.yimg.com/zz/combo?a/i/us/n...
最近为了做好一个天气预报的项目,需要从Yahoo下载一些天气图标,但是由于图标比较多,有80多张。图标是存储在Yahoo Image网站上的。
迅雷不支持https的下载,虽然可以在浏览器下载,但是在浏览器下载太慢,于是写了一个批量下载图片资源的Shell脚本,完美的解决了这个问题。
Yahoo天气图标的地址规则如下:https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/ + 图标名称
我使用了2种方法,解决了下载的难题,虽然好久没有写Shell脚本了,但是意识和底子还在,写即几十行代码还是比较轻松的。
#!/bin/bash
# Decription:
A Shell script used to download the imges from Internet.
BASE_URL="https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/"
# declare STIRNG variable
STRING="Beginning Image download..."
#print var on screen
echo $STRING
echo "...."
BIG_PNG="ds.png"
PNG=".png"
echo "url="${BASE_URL}
echo "big png="${BIG_PNG}
for ((i=0; i&49;i++)); do
echo IMG_URL=${BASE_URL}${i}${BIG_PNG}
echo "final url="${IMG_URL}
curl ${BASE_URL}${i}${BIG_PNG} -o small/${i}${PNG}
方法2将图片URL地址都写在一个数组里,然后从数组中读取,并重命名,相对来说,不如第一种方法简单:
# Method 2
URL_ARRAY=(
'https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/0d.png'
'https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/1d.png'
NAME_ARRAY=(
'file1.jpg'
'file2.jpg'
ELEMENTS=${#URL_ARRAY[@]}
for (( i=0;i&ELEMENTS;i++)); do
echo ${URL_ARRAY[${i}]}
echo "saved as ${NAME_ARRAY[${i}]}"
curl ${URL_ARRAY[${i}]} -o images/${NAME_ARRAY[${i}]}
以上,希望有需要的同学可以采用:-)
以上是互联网用户为您的的内容,在阿里云内部有更多的关于Shell脚本实现批量下载网络图片代码分享_linux shell的内容,欢迎继续使用右上角搜索按钮进行搜索shell脚本、批量下载、网络图片、以便于您获取更多的相关信息。
本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:zixun-group@service.aliyun.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
若您要投稿,删除文章请联系邮箱:zixun-group@service.aliyun.com
工作人员会在5个工作日内回复
脚本栏目为您免费提供
相关信息,包括
的信息 ,所有
相关内容均不代表阿里云的意见!投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员5个工作日内回复。最近有用到需要批量导入N个表的sql,一个个导入会吐老血的,写了个shell脚本,便捷导入。
通常我们导入单个sql,可以用
$mysql -uroot -p world & xxxx.sql
但我最近要导入一个文件里近百个sql,这么一个一个敲我都不敢想象。
搜索发现mysql 5.6以后可以用 mysql_config_editor 这个自带命令行工具方便批量执行操作。
使用方式如下:
$mysql_config_editor set --login-path=test --user=root --host=localhost --password
$Enter password: (输入密码)
下面是我实际用的shell脚本内容:
db_up_tool.sh
wdb_def="auth"
printf "What is your World database name ?\t[${wdb_def}]: "
wdb=${wdb:-${wdb_def}}
printf "What is your MySQL password ?\t [], "
mysql_config_editor set --login-path=local --host=127.0.0.1 --port=3306 --user=root --password --skip-warn
printf "Updating data into the character database ${wdb}\n"
for file in $(ls *.sql | tr ' ' '|' | tr '\n' ' ')
file=$(echo ${file} | tr '|' ' ')
printf "Applying update ${file}\n"
mysql --login-path=local -q -s ${wdb} & ${file}
wdb_def是我默认的数据,运行后会提示你输入需要导入的数据,及密码,端口和账号脚本写死了,不同的需要自己改下。没有写选择路径,直接吧脚本到sql所在的文件夹
$./db_up_tool.sh
运行就可以了,会遍历当前的文件夹内所有‘*.sql’的文件。
「原创声明:保留所有权利,禁止转载」
感谢楼主的分享
后方可回复, 如果你还没有账号请点击这里 。
t880216t (81—1)
第 6859 位会员 /
共收到 2 条回复博客访问: 5853175
博文数量: 374
博客积分: 9600
博客等级: 上校
技术积分: 18846
注册时间:
2007年开始从事运维方面的工作,经历过网络管理员、linux运维工程师、DBA、分布式存储运维等多个IT职位。对linux运维、mysql数据库、分布式存储有丰富的经验。2012年加盟腾讯,目前在腾讯负责腾讯云数据库平台和分布式存储运维平台的运维规划工作。
微信:feihongwuhen
分类: Mysql/postgreSQL 17:42:33
&&& 通常我们在删除线上的大表数据的时候,如果超过一定数目就不能直接删除,否则可能会造成数据库长时间锁定或者直接导致服务器挂掉。合理的做法应该是分多批次删除,比如下面脚本中是每次删除1000行,然后休息10s种后继续删除。#Purpose: 批量删除大表的数据,减少对线上数据的影响,每次删除1000行数据,然后sleep 10#Author: Carl Zhang#Date: #Useage: ./delete_bigtable_data.sh 'DELETE FROM test.test WHERE test.datetime <=" 00:00:00"'MYSQL='/usr/local/mysql/bin/mysql'USER='root'HOST='localhost'PASSWORD='zhang@123'if [ $# -ne 1 ];then
echo "Usage: ./delete_bigtable_data.sh 'DELETE_SQL'"
echo "For example: ./delete_bigtable_data.sh 'DELETE FROM test.test WHERE test.datetime <=" 00:00:00"'"
echo "Please try again"
exit 1fiDELETE_SQL=$1echo "DELETE_SQL is $DELETE_SQL"SELECT_SQL=`echo $DELETE_SQL|sed 's/;$//;s/^\w*/SELECT */;s/$/ LIMIT 1/;s/.*/select count(1) from (&) a/'` echo "SELECT_SQL is $SELECT_SQL"LAST_SQL=`echo $DELETE_SQL |sed 's/;$//;s/$/ LIMIT 1000/'`echo "LAST_SQL is $LAST_SQL"while [ `$MYSQL -u$USER -p$PASSWORD -h$HOST
-ss -e "$SELECT_SQL"` -gt 0 ];do
echo "deleting 1000 rows,please wait"
$MYSQL -u$USER -p$PASSWORD -h$HOST
-ss -e "$LAST_SQL"
echo "sleep 10"sleep 10done
阅读(4904) | 评论(2) | 转发(5) |
给主人留下些什么吧!~~
shell脚本真的太强大了,真的是一行顶100行C代码 啊!
请登录后评论。博客分类:
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件hive映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
Hive目前还不支持像Mysql那样的sql脚本,如果遇到需要批量处理HQL就会比较麻烦(这两天就遇到需要批量删除有命名规则的表的情况,想了许多土方法)。
于是就想到了用shell脚本去实现执行批量HQL命令的方法。
其实原理很简单,在shell脚本中用echo命令将HQL命令以字符串的形式‘导入’Hive客户端里面去执行,还可以用重定向将执行结果保存到脚本日志中。
下面来个简单的一例子:
#如果已经配好环境就不需要再export了
export HADOOP_HOME=/opt/hadoop-0.19.2/
export HIVE_HOME=/opt/hive.0.42/
echo "CREATE TABLE leign(id INT,name STRING) COMMENT 'This is a test table'
PARTITIONED BY(dt STRING, country STRING)
STORED AS SEQUENCEFILE;" | hive -u root -p *** & hive_create_table.log
以上这个例子简单地创建了一张表,然后将建表前后所有表的情况都打到了log日志里面。
大家可以发挥想象,写出自己需要的hive脚本。
浏览 13127
浏览: 123244 次
来自: 北京
这个不错啊,参考参考,呵呵
现在的情况是:jira和confluence使用的是一个用户管 ...
非常棒,推拉模式总结得很到位。学习了!
009dsa 写道兄弟 我不明白你在干什么?
中文可以取半个吗 ...
兄弟 我不明白你在干什么?中文可以取半个吗?
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'如何编写一个shell脚本_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
如何编写一个shell脚本
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
&#xe64e;加入VIP
还剩15页未读,
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 新建一个shell脚本 的文章

 

随机推荐