日志备份、服务启动等常用Linux脚本

日志备份、服务启动等常用Linux脚本

日志备份

#!/bin/bash
SRC_HOST='192.168.10.3' # ip
SRC_USER='root' # 用户名
SRC_PWD='123456' # 密码 
SRC_DATABASE_PREFIX='service_' # 需要备份的数据库名前缀
SRC_BACKUP_DIR='/data/mysql_backup_data/' # 备份的目录
TIME=$(date "+%Y%m%d-%H%M%S") # 备份文件时间格式
echo "当前时间 ${TIME}"
BACKUP_FILENAME="${SRC_DATABASE_PREFIX}_${TIME}.sql"
echo "正在备份数据库至文件: ${BACKUP_FILENAME}"
mysqldump -h${SRC_HOST} -u${SRC_USER} -p${SRC_PWD} --default-character-set=utf8 --skip-add-locks --skip-lock-tables -B $(mysql -h${SRC_HOST} -u${SRC_USER} -p${SRC_PWD} -Bse "show databases like '${SRC_DATABASE_PREFIX}%';" 2>/dev/null) >${SRC_BACKUP_DIR}${BACKUP_FILENAME} 2>/dev/null
echo "数据库备份完毕"
echo "删除10天前的备份文件"
find ${SRC_BACKUP_DIR} -name "*.sql" -mtime +10 -exec rm -rf {} \; # 只保留10天的备份文件

服务启动

执行命令 bash job.sh {start|stop|status|restart} xxx.jar

#!/bin/bash

JAR_NAME="$2" # 第二个参数,jar包
JAR_NAME_OLD=$(cat ./.JAR_NAME) 
[ -z ${JAR_NAME} ] && JAR_NAME=${JAR_NAME_OLD};
if [ -z ${JAR_NAME} ];then  echo $"Usage: $0 {start|stop|status|restart} name.jar";exit 11;fi;
	
PORT="8080" # 端口

# 启动
function _start() {

	nohup java -jar ${JAR_NAME} --spring.profiles.active=release --server.port=${PORT} 2>&1 >> /data/logs/${JAR_NAME}.log & 
	[ $? -eq 0 ] && echo ${JAR_NAME} >./.JAR_NAME
	echo $! ; tail -f /data/logs/${JAR_NAME}.log

}

# 停止
function _stop() {
	
	PID=$(ps -aux | grep "$JAR_NAME_OLD" | grep "server.port" | grep "$PORT" | grep -v "grep" | awk '{print $2}')
	if [ -z ${PID} ]
	then 
		echo "$JAR_NAME_OLD" NOT RUNNING
	else  
		kill -9 ${PID}
	fi
	echo stop finished
}


# 状态
function _status() {
	PS_TITLE=$(ps -aux | head -1);
	PS_INFO=$(ps -aux | grep "$JAR_NAME_OLD" | grep "server.port" | grep "$PORT" | grep -v "grep")
	echo -e "${PS_TITLE}\n${PS_INFO}";
	#[ -z ${PS_INFO} ] && echo NOT RUNNING

	
}


case "$1" in
  start)
	_stop;
	sleep 1;
  	_start;
	;;
  stop)
  	_stop
	;;
  status)
	_status
	;;
  restart|reload)
	_stop;
	sleep 1;
	_start
	;;
 *)
	echo $"Usage: $0 {start|stop|status|restart}" # 可选参数
	exit 1
esac

系统服务文件配置

/lib/systemd/system/ 下创建 demo.service

[Unit]
Description=Open Demo daemon
After=network.target # 在网卡之后启动

[Service]
ExecStart=/usr/bin/sh /usr/bin/demo >> /var/log/demo.log # 执启动的文件
Restart=on-failure
RestartSec=3s

[Install]
WantedBy=multi-user.target

systemctl start demo # 启动
systemctl enable demo # 开机自起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值