栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Shell脚本应用两个例子

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell脚本应用两个例子

平时很少写Shell脚本,主要是它的语法相比Python要难掌握,但做为非专业运维工程师,拼拼凑凑还是要能写一点Shell代码,在处理文件相关任务时还是要方便些。

一、数据库冷备

#!/bin/sh
bakFile="/bak/"$(date "+%Y%m%d")"150001.gz"
mysqldump -h *.rds.amazonaws.com -u* -p* --databases * | gzip > $bakFile
scp -i /bak/EcommerceChinaDev.pem $bakFile ec2-user@ip:/home/ec2-user/bak/
0 15 * * * sh /bak/bakdb.sh

每天定时(UTC时间0点15)将AWS上的RDS dump到一台离线机器。

二、Java与Vue项目打包发布

cur_branch=2022_01_25_V8.4
echo $cur_branch

echo '开始打包发布........'
cd /mnt/integrate/source_posadm
rm -rf /mnt/integrate/source_posadm/blinds_pos_admin/
git clone http://user:passwd@ip:8083/tech/blinds_pos_admin.git

echo '源代码下载完成...'
cd /mnt/integrate/source_posadm/blinds_pos_admin/
git checkout $cur_branch
git branch

cnpm install
echo 'node依赖模块下载完成'

cnpm run test
echo 'build完成'

cp -rf /mnt/integrate/source_posadm/blinds_pos_admin/test/. /usr/local/posadm
ps -ef | grep nginx | awk '{print $2}' | xargs kill -9
/usr/sbin/nginx

注:
1、考虑到项目相对较少,不想去搭建Jenkins这类集成打包环境,就直接写一个Shell脚本。
2、在脚本中写 rm -rf * 要特别小心,一般要指定删除目录的完整路径,不要先cd到目录,然后执行rm -rf ,这样风险很大,极有可能误删,记得四年前第一次写的时候没注意,一个脚本执行后把脚本自己都干掉了。
这里建议生产环境机器,最好重新定义一下rm,不要直接删除,把数据先挪到回收站,在~/.bashrc中加入如下代码。

alias rm=trash
trash()
{
 mv $@ ~/.Trash/
}
alias rl='ls ~/.Trash'
alias ur=undelfile
undelfile()
{
 mv -i ~/.Trash/$@ ./
}
cleartrash()
{
 read -p "Clear trash>[n]" confirm
 [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /usr/bin/rm -rf ~/.Trash/*
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750794.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号