trap来将脚本内执行的命令写入日志

如果您想将刚执行的命令行输出到日志文件中,可以使用 trap 命令来实现。

下面是一个示例脚本:

#!/bin/bash

source /etc/profile

day=`date ‘+%F %X’`
log_file=”/tmp/rsync.kinggoo.log”

# 日志文件路径
log_file=”/path/to/log.txt”

# 设置 DEBUG 选项以显示命令
set -o functrace

# 定义一个函数来处理 DEBUG 选项
function log_command() {
local current_com[……]

继续阅读

rsync 本地备份 月 周 天 小时

本地同步备份

#!/bin/bash
#author kinggoo
# shell.sh [hourly|daily|weekly|month]
#inotify-slave的ip地址
backupdatapath=”/data2/backupdata/”
dsrc=”${backupdatapath}htdocs”
#本地监控的目录
src=/data1/htdocs/
#exclude-from
excludeFrom=”/var/spool/cron/rsync.exclude”
#日志
log=”${backupdatapath}/log/`date +%Y%m`”
inotif[……]

继续阅读

转 sed的用法

sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。

sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。本文主要介绍sed的一些基本用法,并通过shell脚本演示sed的使用实例。

1.sed的使用方法,调用sed 命令的语法有两种:

一.在命令行指定sed指令对文本进行处理:sed +选项  ‘指令’ 文件

二.先将sed指令保存到文件中,将该文件作为参数进行调用:sed   +选项  -f&#16[……]

继续阅读

(一个村的希望)配合pac方式+小飞机客户端方式SSR+privoxy+nginx转发出门的学习思路

思路仅供参考。。。仅测试、练习、学习、参考,如有违规删之。

如果有拷贝,请留下链接地址。

你是村里的骄傲~

针对题目有两个方式:

一种是买完ssr服务后,在本地局域网搭建一台母机。然后在母机上搭建sslocal,在使用privoxy将本地全局http转sock。

另一种,买完 ssr后,如果密码和端口一样,直接使用nginx做负载转发即可,省事便捷(非限客户端情况下)。

如果不妥之处,请告知,相互学习。

安装 pip
yum install -y pip

yum安装不管用的话
curl “https://bootstrap.pypa.io/get-pip.py” -o[……]

继续阅读

检测Mysql、php-fpm进程任务(临时怼两个简单的脚本)

因为阿里的原因,导致疏忽被工信部把备案号取消了,身份证到期还没办法更新备案信息,坑爹!

临时借用好朋友服务器来使用,环境搭建急急忙忙,导致偶尔会有各种小状况出现,所以临时怼两个简单的脚本。

检测Mysql

#!/bin/bash
count=`/usr/bin/pgrep mysql|wc -l`
if (($count> /tmp/log
fi

检测PHP

#!/bin/bash
count=`/usr/bin/pgrep php|wc -l`
if (($count/dev/null 2>&1 &
sleep 3
nohup /usr/[……]

继续阅读

crond任务内有事无法执行某些命令,如sudo等方式

比如运行tomcat时,使用了非root用户执行,如:
sudo -u tomcat8 -s /bin/bash -c /tomcathome/bin/startup.sh
# 下面是我真实的cron记录
# shell>> */1 * * * * /bin/bash /var/spool/cron/checkTomcatService.cron > /dev/null 2>&1

将其添加到crond任务内,你会发现这条任务虽然执行了,并且没有任何错误,但却并没有将tomcat进程启动并后台运行(跟加不加&无关),但直接执行脚本无任何问题。
查找原因,总后排查到是sudo[……]

继续阅读

通过sohu公共ip库获取本机公网ip

sohu 获取公网IP地址方式 http://txt.go.sohu.com/ip/soip

python方式

#!/usr/bin/python
# -*- coding:utf8 -*-

import urllib2
import re

url = urllib2.urlopen(“http://txt.go.sohu.com/ip/soip”)
text = url.read()
ip = re.findall(r’\d+.\d+.\d+.\d+’,text)

print ip[0]

 

shell

echo $(curl -[……]

继续阅读

使用wget来批量下载FTP数据(http可以访问到的也可以)

大文件传输的时候有时真的让人苦恼,压缩很费时间,也一样要下载。苦苦寻找,找到可以用wget来批量下载数据。哪怕是文件夹有多级。

运行格式

shell>># wget -nH -m –ftp-user=kinggoo_UserName –ftp-password=kinggoo_FtpPasswd ftp://kinggoo.com:62111/*

参数:

-nH , –no-host-directories 不建立含有远端主机名称的目录
–protocol-directories 在目录中加上通讯协定[……]

继续阅读

tomcat多主机多实例,以及无法加载项目的处理

文章有些地方可能介绍的不一样,因为我直接本地用nginx做了一个代理。属于本人留存!
还有就是这个已经写了好久了,断断续续修修改改,尽管我已经检查了但可能发到博客上的这份有些位置还是难免忘记解释什么。我及时修正。

当时我遇到一个无法查找到原因的难题,是关于tomcat在运行时被rm -rf掉了(你懂的)。然后使用备份的配置文件重新部署上,发现tomcat可以起来并且不报任何错误,但项目全部都不会被tomcat加载。这个问题困扰了我一天一夜,奋战到早上4点多,测试了无数方法,估计搞出无数的状况,也进行了无数次配置调试。问题原因依然没解决。

针对这个问题的解决办法是:把项目重新部署一[……]

继续阅读

SHELL读取 ini 格式文件做配置文件

ini文件格式一般都是由节、键、值三部分组成

格式:

[第一节]

第一个键 = 值

第二个键 = 第二个值

[第二节]

第一个键 = val1,val2,val3

例子:

[COM]

KINGGOO = kinggoo.com

其实这个作用没那么特别大,但多个shell如果每个配置信息都在shell文件里面写,懂的人还好,半懂+不仔细的人要如何改,改几个地方估计脚本就不能运行了。所以这样单独哪出来比较好些,而且可以多个shell使用一个ini文件(与扩展名无关)来做配置也可以的。只需要在shell里面加一个自定义函数就可以[……]

继续阅读

在Windows上的安装SSHd服务已便Linux系统下远程命令操作

之前写过一篇“Shell脚本自动telnet到远程Linux主机执行操作”,好笨的办法!当时以前也没有想到可以在windows上安装个sshd的服务,如果现在想的话,我可能首当其冲的想到通过web方式调用windows本地脚本来实现,可这次突然想起来sshd服务???X了,直接安装个sshd之后不就可以直接远程到windows上了吗!

1)想到这记起之前在windows上安装过的cygwin,这东西很不错可以安装很多的服务或者插件什么,几乎跟linux没啥区别了;

2)网络搜刮了一下发现了freesshd,安装简单而且小巧,而已比较恶心的可能就是如果你的windows是中文版本的可能会有乱码![……]

继续阅读

LVS+Keepalived负载均衡

好久好久前做的记录了,仅供参考!

lvs server VIP:192.168.150.130 real server1:192.168.150.129 real server3:192.168.150.131 Bcast:192.168.150.255 Mask:255.255.255.0

下载:

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
tar ipvsadm-1.26 && cd ipvsadm-1.26 && make &&[……]

继续阅读

centos下yum安装配置openldap 2.4.23-32外送svn的apache下配置

写完这个文章有一阵了,合计下个月可以轮到这个文章记录发上来了,后来被群里(56479030)的童鞋们要看,只能提前发了。
系统信息

[root@kinggoo ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)

[root@kinggoo ~]# uname -a
Linux kinggoo.com 2.6.32-358.23.2.el6.i686 #1 SMP Wed Oct 16 17:21:31 UTC 2013 i686 i686 i386 GNU/Linux

安装openldap(2.4.23-32)[……]

继续阅读

Linux 下比较文件内容并删除相同部分

别人问我,我自己突然不知道怎么弄又懒得想,搜索了一下,找到一篇文章。然后稍微了解了一下。
先做好准备工作,简单准备两个文本文件,如下

[root@kinggoo.com test1]# cat file1
a
b
c
d
e
[root@kinggoo.com test1]# cat file2
c
e

说明,是通过file2内容与file1做比较,最后列出file1与file2不同的部分
方法一

comm
功能说明:比较两个已排过序的文件。
语 法:comm [-123][–help][–version][第1个文件][第2个文件][……]

继续阅读

将rsync与linux内核中的Inotify功能复用,达到实时监控同步数据,附带脚本

一直以来不想用rsync,之前dongnan向我推荐过一次,后来查了查感觉那会也用不上,自己安装一下,试了试感觉没啥太好的地方,而主要是当你文件比较多的时候会在速度很资源上有多余浪费,所以一直也没用(就好比,你拷贝1G的文件,如果里面有上万个小文件。那这个速度肯定比不上一个1G的大文件一次性传输快了。这时候谁管你用的是固态还是高速硬盘)。
但这次实在没办法,同机备份,我也懒得自己写脚本了,干脆就整个目录每次备份吧。这次有些事情,没办法如果用脚本的话会很不方便,所以跟linux内核内的inotify配合达到实时备份的作用

什么是rsync
Rsync,Remote Synchronize[……]

继续阅读

第 1 页,共 3 页123