Skip to content

Instantly share code, notes, and snippets.

@ayuLiao
ayuLiao / usersync.sh
Created March 1, 2019 06:06
拷贝时,除去某些目录
使用 rsync 进行拷贝:
rsync 本来是文件同步备份的工具,相对于普通的 cp 命令,rsync 在控制方面就强多了,而且 rsync 对遍历目录也支持,有 --exclude 参数可以忽略指定的文件或文件夹。
rsync -vaP --exclude=".*" --exclude="Makefile" dir1 /home/dir2
如上面演示的就可以排除掉隐藏文件和 Makefile 文件,-a 参数已经包含遍历处理参数 -r。
>>>crazystring = ‘dade142.;!0142f[.,]ad’
>>> filter(str.isdigit, crazystring) ‘1420142’ #只保留数字
>>> filter(str.isalpha, crazystring) ‘dadefad’ #只保留字母
>>> filter(str.isalnum, crazystring) ‘dade1420142fad’ #只保留字母和数字
#如果想保留数字0-9和小数点’.’ 则需要自定义函数
>>> filter(lambda ch: ch in ‘0123456789.’, crazystring) ‘142.0142.’
In [20]: is_fat = True
In [21]: state = "fat" if is_fat else "not fat"
In [22]: state
Out[22]: 'fat'
In [1]: import glob
In [2]: %pwd
Out[2]: u'/Users/ayuliao/Desktop/workplace/9377code/agent_flask'
In [3]: f1 = glob.glob(r'/Users/ayuliao/Desktop/workplace/9377code/agent_flask') #没有使用正则,则什么都不返回
...:
In [4]: print(f1)
['/Users/ayuliao/Desktop/workplace/9377code/agent_flask']
@ayuLiao
ayuLiao / getfatherfunctionname.py
Created February 18, 2019 08:37
python获取调用方法的上层方法的名称
import traceback
def fun():
# 代码栈,其中包含调用该方法的方法名称
s = traceback.extract_stack()
print '%s Invoked me!'%s[-2][2]
>>> def a():fun()
>>> def b():fun()
>>> a()
a Invoked me!
@ayuLiao
ayuLiao / fcntl.py
Created February 12, 2019 09:37
利用fcntl实现文件锁 在uwsgi的环境下,因为uwsgi会开启多个python进行接收请求,此时要求并发请求时,某些步骤单步执行,就需要使用外部锁,而不是使用进程内的逻辑锁,最简单的外部锁就是文件锁,使用fcntl,实现文件锁会非常简单。
import os
import fcntl
class Lock(object):
def __init__(self, filename):
self.filename = filename
self.handle = open(filename,'w')
def acquire(self):
# if you need a non-blocking lock, use fcntl.LOCK_NB
@ayuLiao
ayuLiao / mydel.sh
Created January 25, 2019 05:47
线上服务器应该限制所有用户的rm 权限,避免用户删除数据,而是使用mv命令来代替,创建一个mydel.sh脚本,该脚本的作用就是将要删除的数据移动到Trash文件夹下,模拟垃圾桶功能,只有管理员才有权限清楚垃圾桶的内容.
#!/bin/bash
delname=$1
if [ ! -n "$1" ]; then
echo "Usages: mydel need one params which you want delelte"
exit 0
fi
# 将要删除的文件移动到创建好的垃圾桶目录
mv $delname /xxx/trash/
@ayuLiao
ayuLiao / currentpath.py
Created January 25, 2019 05:43
python在导入数据时,使用当前python文件路径加上相对于当前文件的路径是比较好的方案
realpath = os.path.realpath(__file__) # 当前py文件路径
current_path = os.path.dirname(realpath) # 当前py所在的文件夹
globalconf = current_path+'/config/global.json'
with open(globalconf, 'r') as f:
pass
@ayuLiao
ayuLiao / view_shell.sh
Created January 22, 2019 09:17
当shell文件执行出问题时,可以使用bash -v的方式来查看shell文件具体的执行到哪一步出了问题
bash -v stop_ssdb.sh
@ayuLiao
ayuLiao / func.js
Last active January 19, 2019 11:10
//原生JS定义方法
var x = function (a, b) {return a * b};
var z = x(4, 3);
//定义多个方法,将方法统一放到一个对象里,以传递一个字符串为例:
//方法定义 ,需要导入jquery
$.func = {