首页 > 应用开发 > Java > 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到一台离线机器。
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/*
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69989885/viewspace-2857945/ ,如需转载,请注明出处,否则将追究法律责任。