shell命令
基本命令
set -eu
set +o posix
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/git/bin
product_date=`date +%Y%m%d`
product_time=`date +%H%M%S`
path="/home/vlog"
ftp_pass=$(base64 -d <<< "cGFzc3dvcmQK")
local_ip = `/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
cd ${path}
${filename:2:11}
if判断
if [ ! -d "backup/${product_date}" ];
then
mkdir -p backup/${product_date}
fi
if [[ ! -f "$filename" ]]; then
echo "file $filename not existed, exit"
exit
fi
chmod u+x ${root_path}/node_modules/.bin/react-app-rewired
nohup java -jar ${MSLIV_NETTY}/xxx.jar > /dev/null 2> /dev/null &
参数校验
NAME="$1"
if [[ -z "$NAME" ]]; then
echo "输入参数为空"
exit
fi
if [ ! $
echo "有参数"
fi
echo -n "please input the username:"
read username
echo $username
链接ftp
lftp $ftp_user:$ftp_pass@$ftp_ip << End-Of-Session
cd $ftp_path
get something.zip
bye
End-Of-Session
echo "获取ftp文件"
ftp -n $ftp_ip <<End-Of-Session
user $ftp_user $ftp_pass
cd ${ftp_path}
bin
prompt off
get something.zip
mget *.zip
bye
End-Of-Session
wget http://downloads.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz
tar xvzf sshpass-1.05.tar.gz
cd sshpass-1.05
./configure
make
make install
sshpass -p password scp -r ${product_date}_${version}_${order_no}/ user@ip:path
删除过期文件
find /home/vlog -mtime +7 -type f -name 'test*' -exec rm -f {} \;
链接oracle
export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'
passwd=$(base64 -d <<< "cGFzc3dvcmQK")
sqlplus -S ${serviceName}/${passwd}@${oracleIP}:${oraclePort}/${ORACLE_NAME} <<EOF
... SQL操作
EOF
set pages 0
set linesize 500
set head off
set feedback off
spool $file1
SELECT MOBILENO||'!^'||ADDRESS||'!^' from ORALCE_TABLE;
spool off
LOAD DATA
CHARACTERSET AL32UTF8
INFILE 'data.unl'
INTO TABLE TABLE_NAME
FIELDS TERMINATED BY '|'
(COLUMN1,COLUMN2,COLUMN3,COLUMN4)
循环遍历
echo "创建total_exec.sql文件"
touch total_exec.sql
for i in $(seq $index $[$table_names_length-1]); do
...
done
for file in ./*
do
if [ ! "${file}" = "./total_exec.sql" ]; then
echo "sql文件:${file}"
echo "@@${file}" >> total_exec.sql
fi
done
for folder_dir in $(ls ./)
do
echo "folder_dir!!: $folder_dir"
if [ -f $folder_dir ]; then
mv $service_path/$folder_dir $bak_path
cp $folder_dir $service_path
echo "$folder_dir is a file!!!"
continue
fi
cd $folder_dir
for filename in ./*
do
echo "filename: $filename"
file_path=${folder_dir//"_"/"/"}
mkdir -p $bak_path/$file_path
abs_file_path=$service_path/$file_path/$filename
if [ -f $abs_file_path ]; then
mv $abs_file_path $bak_path/$file_path
echo "${abs_file_path} backup finished"
fi
cp $filename $service_path/$file_path
echo -e "$filename update finished \n"
done
cd ..
done
根据git diff分割文件作为数据
diffFile=`git diff remotes/origin/pro-20211207 remotes/origin/master --name-only`
fileArray=${diffFile//\\n/ }
for file in ${fileArray[*]}
do
path=${file//\// }
con_path=''
for folder in ${path[*]}
do
if [[ ! ${folder} =~ '.' ]]; then
echo "folder: ${folder}"
con_path="${con_path}_${folder}"
fi
done
file_path=${con_path
echo ${file_path}
mkdir -p ./${project}/${file_path}
cp ${file} ${project}/${file_path}/
done
操作文件
mv .[^.]* "../backup/${backupFile}"