Linux开启外网转发到外网的方式

NAT_Host='1.1.1.1' Dst_Host='2.2.2.2' iptables -t nat -A PREROUTING -p tcp -d $NAT_Host -j DNAT --to $Dst_Host iptables -t nat -A POSTROUTING -d $Dst_Host -p tcp -j SNAT --to $NAT_Host iptables -A FORWARD -d $Dst_Host -j ACCEPT这样就可以从 1.1.1.1 上把所有tcp访问全部转发到 2.2.2.2 上去了奇葩客户有这样的奇葩需求

  Read More →

Python subprocess模块总结

subprocess最简单的用法就是调用shell命令了,另外也可以调用程序,并且可以通过stdout,stdin和stderr进行交互subprocess的主类subprocess.Popen( args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=N

  Read More →

Linux实现在某个确定的时间段内随机执行命令

写了个脚本签到,但是不想总是在确定的时间签到,不然在数据库里面的记录太假了,所以需要在确定的时间段内,随机选个时间执行,最后想到了使用Cron+AT实现思路很简单,就是cron设置一个起始时间,比如每天早上6点,在这个时间往后随机的2~350分钟里面去签到那么只要这样0 6 * * * echo 'sleep ' $(shuf -i 1-60 -n 1)';date >>/tmp/xxxx.txt' |at now + $(shuf -i 2-350 -n 1) min之所以前面还加了随机1-60秒的sleep 是因为 at是整点执行,不想让数据库内只有整分钟点的签到记录。这个比直

  Read More →

利用.my.cnf,安全实现Shell下MySQL免输入密码登录

MySQL官方文档有说明,可以在~/.my.cnf处指定用户的密码。.my.cnf的格式如下:[client] password="MySQL密码" user=MySQL用户名上面的user一行可以省略,不指定user,则自动以当前Shell登录的用户身份登入mysql。把上述代码保存到~/.my.cnf,再次输入mysql(或mysql -u 用户名),mysql-client就会自动读取当前用户的家目录下.my.cnf文件的信息,可以无密码自动登入MySQL。cron等非交互式的程序执行mysql,可能不会自动读取~/.my.cnf,或者.my.cnf保存在其他路径或保存为其他文件名时

  Read More →

Linux的Shell里面生成随机数

1.使用时间相关的随机数利用data命令生成输出unixtimestamp(%s)和当前时间的纳秒数据(%N,精确到亿分之一秒)前者保证在不同秒数之内输出不重复 后者保证在同一秒内数字不重复 两者组合就可以了date +%s%N这个方法不依赖系统 只要时间不停止,就一直可以得到不重复的为随机数2.系统shell内部变量$RANDOM这么没啥好说的  依赖shell3.通过Linux的随机设备获取 然后算校验和head -10 /dev/urandom | cksum注意这里千万不要使用cat去获取 这个是一条没有尽头的路 获取1行和10行没有太大的区别4.通过Linux的内核的UUI

  Read More →

正确的删除tc的filter过滤器

直接用过滤器的生成规则去删除TC的filter会导致所有过滤器都被清空不像class,添加后 想要删除很简单 直接把TC命令中的add换成del就可以了,如果class重复,就会像添加路由出错时候一样有提示。但是filter不一样,相同规则的filter可以不断持续的添加,规则添加后,内核会用不同的句柄号(handle)来区分,删除一个filter,不能简单的把规则的add换成del,那会删除所有的filter规则,因为你没有提供最重要的句柄号(handle) 没有提供就是0 是0就会删除所有规则。如果一个filter已经和一个class关联了,那么你如果删除这个class 就会得到这样的提示

  Read More →

Python 截取字符串

str = '0123456789' print str[0:3] #截取前三位的字符,也可以简写为str[:3] print str[1:4] #截取第二位(包括)到第五位(之前)的字符,首位用0表示,所以结果为'123' print str[:] #截取字符串的全部字符 print str[6:] #截取第七个字符到结尾 print str[:-3] #截取从头开始到倒数第三个字符之前 print str[2] #截取第三个字符 print str[-1] #截取倒数第一个字符 print str[::-1] #创造一个与原字符串顺序相反的字符串 print str[-3

  Read More →

python 显示进度条

进度条和一般的print区别在哪里呢?答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果。进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条?最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可实现,新的更长的进度条把旧的短覆盖,就形成了动画效果。可以想到那个转义符了吧,那就是 \r。转义符\r就可以把光标移动到行首而不换行,转义符\n就把光标移动到行首并且换行。在python中,输出stdout(标准输出)可以使用sys.

  Read More →

Ubuntu 16 安装时出现无法安装 busybox-initramfs 的解决办法

在语言选择界面选择英文,然后按 F6,再按 ESC,在最下边的命令行里,把结尾的 quiet 替换成 all_generic_ide,回车就可以正常安装了。可以在接下来的语言选择界面再次选择中文。

  Read More →

Linux下" >/dev/null 2>&1 "重定向相关知识说明

0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr)command >/dev/null 2>&1 &  == command 1>/dev/null 2>&1 &1)command:表示shell命令或者为一个可执行程序2)>:表示重定向到哪里 3)/dev/null:表示Linux的空设备文件 4)2:表示标准错误输出5)&1:&表示等同于的意思,2>&1,表示2的输出重定向等于于16)&:表示

  Read More →
  搜索
  Tags
全部   Ubuntu   Linux   Python   Windows   Shell   转发   字体   循环   js   KMS   MySQL   html   DNS   css   多线程   VSCode   Office   安装   WinSCP   字典   原创   多进程   反向代理   领带   截取字符   随机数   随机   重定向   远程调试   进程池   进度条   网卡   线程池   电源   生活   激活   浏览器   日志   数据库   venv   vbs   uuid   IP   iostat   import   GitHub   dpkg   DHCP   curl   crx   CPU   cloud-init   BBR   Apt   iptables   Kitsunebi   kvm   tc   subprocess   SSH   SoftEther   Set   samba   pyflakes   pip   Nginx   NextCloud   List   libreoffice   Adobe  
  功能
You can put anything you want inside of these side widgets. They are easy to use, and feature the new Bootstrap 4 card containers!