=====set -o======
-在默认情况下,遇到不存在的变更,会忽略并继续执行,
-而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的执行。
set -o nounset
-在默认情况下,遇到执行出错,会跳过并继续执行,
-而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的执行。
set -o errexit
set -e表示一旦脚本中有命令的返回值为非0,则脚本立即退出,后续命令不再执行;
set -o pipefail表示在管道连接的命令序列中,只要有任何一个命令返回非0值,则整个管道返回非0值,即使最后一个命令返回0.
set -eo pipefail
#!/bin/bash
#bash包含sh并且功能更强,比如可以用数组。
# #####
# 逾期自动代扣, 逾期30天内的每天23.30分自动发起代扣
# 23点30分
# #####
set -o nounset
set -o errexit
PHP_BIN="/usr/local/webserver/php-70/bin/php"
echo "******"
echo $(date)
echo "datianxia_grcvomej"
$PHP_BIN /data/web/gaea.qianbitou.cn/command/datianxia_grcvomej overdue/overdue-status-task
echo $(date)
echo "overdue/overdue-status-task end!"
echo "******"
# 逾期自动代扣, 逾期30天内的每天23.30分自动发起代扣
20 0 * * * root /usr/bin/bash /data/scripts/tianxiada_overdue-status-task.sh >>/tmp/prod-cron/overdue-status-task.log 2>&1
#/dev/null
在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。
在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。
空设备通常被用于丢弃不需要的输出流
>/dev/null 2>&1,让所有的输出流(包括错误的和正确的)都定向到空设备丢弃。
=======循环目录名========
DIR="/data/web/qianbitou.cn/gaea-beta/command"
CLIENTS=$(ls -1 $DIR)
cd "/data/web/qianbitou.cn/gaea-beta/"
i=0
for client in $CLIENTS;
do
echo $client
let i+=1
echo yes | $PHP_BIN $DIR/$
client migrate &
# echo yes | $PHP_BIN $DIR/$client migrate --migrationPath="@console/migrations/data" &
if [ $i == 4 ]
then
wait
i=0
fi
done
wait
PHP_BIN="/usr/local/webserver/php-70/bin/php"
ALPHA_DIR="/data/web/qianbitou.cn/gaea-alpha/command"
BETA_DIR="/data/web/qianbitou.cn/gaea-beta/command"
echo $(date)
BETA_CLIENTS=$(ls -1 $BETA_DIR)
for client in $BETA_CLIENTS;
do
echo $client;
echo "Alpha"
sudo -u www $PHP_BIN $ALPHA_DIR/$client clear/clear-home-statistics-cache;
echo "Beta"
sudo -u www $PHP_BIN $BETA_DIR/$client clear/clear-home-statistics-cache;
done
echo "clear-home-statistics-cache end!"
=======txt循环目录名========
/data/scripts/clear-home-statistics-cache.sh >> /data/logs/clear-home-statistics-cache.log 2>&1
#!/bin/bash
# #####
# 清除首页缓存数据:每天1:00
# 执行方式:./clear-home-statistics-cache.sh
# #####
set -o nounset
# set -o errexit
PHP_BIN="/usr/local/webserver/php-70/bin/php"
PROD_DIR="/data/web/gaea.qianbitou.cn/command"
# CLIENTS_FILE="/data/scripts/clients_prod.txt"
CLIENTS_FILE="/data/scripts/new_clients_prod.txt"
echo "******"
echo $(date)
PROD_CLIENTS=$(cat $CLIENTS_FILE | grep -v ^# | awk '{if($4 == "1") {print $1}}')
for client in $PROD_CLIENTS;
do
echo $client;
sudo -u www $PHP_BIN $PROD_DIR/$client clear/clear-home-statistics-cache;
don
echo "clear-home-statistics-cache end!"
echo "******"vim new_clients_prod.txt
i# 配置各个客户是否需要开启相应的功能,1为开启,0为不开启
# client 1 2 3 4 5 6 7 8 9 10 11 12 13
jueying_pof7ba 0 0 0 1 1 1 0 0 0 1 1 1 1
meichet_uxjk8u 1 1 1 1 1 1 0 0 0 1 1 1 1
donglif_ig0gbx 0 0 0 1 1 1 0 0 0 1 1 1 1
zhongyi_kgsvez 0 0 0 1 1 1 0 0 0 1 1 1 1
huipuyh_ktamun 1 1 1 1 1 1 0 0 0 1 1 1 1
zhongyi_dmacut 0 0 0 1 1 1 1 1 0 1 1 1 1
#重启脚本
#!/bin/bash
pid=$(ps -ef | grep biz | grep -v grep | awk '{print $2}')
echo $pid
if [ -n "$pid" ]
then
echo '$pid is nunning : ' $pid
kill -9 $pid
fi
mv /data/log/biz.log /data/log/biz.log.$(date +%Y%m%d)
nohup /usr/bin/java -jar -Dhudson.util.ProcessTree.disable=true /data/projar/biz.jar --server.port=8014 --server.servlet.context-path=/ >> /data/log/biz.log 2>&1 &
---指定用户运行
sudo -u www bash -c 'nohup ./gocron web &'