新建Redhat Linux系统在投产前需要做一些初始化设置,包括主机名称、新建用户、sudo配置、访问控制、口令策略、关键目录权限控制等等。用脚本实现比较节省时间,同时也能记录设置的内容。工作环境中使用的Redhat Linux 版本是 Redhat5.8和 Redhat6.4 ,多少有点儿区别,修改一下也可以应用到其他版本。
Redhat Linux 安全设置脚本
新建Redhat Linux系统在投产前需要做一些初始化设置,包括主机名称、新建用户、sudo配置、访问控制、口令策略、关键目录权限控制等等。用脚本实现比较节省时间,同时也能记录设置的内容。工作环境中使用的Redhat Linux 版本是 Redhat5.8和 Redhat6.4 ,多少有点儿区别,修改一下也可以应用到其他版本。
Redhat Linux 安全设置脚本
近半年时间用来监控陆龟的树莓派 Raspberry Pi 还算稳定,可到了冬天龟箱里的加热灯长时间加热导致树莓派温度很高,时不时的自动重启。如果每次都能正常起来也就罢了,可偶尔会挂不上SD卡的文件系统直接宕了,还得用备份还原SD卡(如果没备份那就悲催了)。
买树莓派的时候只想到存储空间大能多存的东西于是买了个16GB的SD卡,可实际用了2G空间不到。最开始备份树莓派SD卡是用windwos下的Win32DiskImager,这种备份恢复树莓派的方式最简单,Windows+读卡器+Win32DiskImager 就可以对树莓派的SD做完整的镜像备份,可我的树莓派用的16GB的SD卡,备份还原既浪费空间又浪费时间。
后来发现一种直接用dd备份树莓派的方法,就是先在树莓派上mount一个共享目录(空间大于SD卡的即可),然后用
dd if=/dev/mmcblk0 of=raspberrypi.img bs=1M
备份成raspberrypi.img镜像文件,恢复的方式有两种:一是用Win32DiskImager在windows系统上直接写到SD卡中;二是在Linux系统中用(先fdisk -l查看设备)
dd if=/path/to/image/raspberrypi.img of=/dev/sdx
这种方式要考虑网络环境,如果你的树莓派接的无线网卡,最好放弃这种方式,太慢!
最后介绍最终极的备份还原树莓派的方式,利用dump 和 restore。先说明一下这种备份方式的好处:一是可以像Windows的Ghost只dump有效数据,也就是说可以最有效的节省备份空间,树莓派有多少数据就生成多大的镜像文件;二是可以恢复到比原来SD卡空间的小的SD卡上,我原来用的树莓派是16GB,现在可以把镜像恢复到8GB或者4GB的SD中。下面看详细步骤(不想看可以直接跳到最后的脚本)
入手树莓派后,参考了网上的一些文章实现了树莓派(Raspberry Pi)远程控制云台来监控我家养的三只陆龟。http://pi.fendou.info(Pagekite映射) http://buzzdao.myds.me:1111/ (路由映射)
下面是实现过程的总结。PS:目前Gor博客内容直接Git clone 自 hugozhu,回头有时间也会把这篇文章以markdown格式整理到上面。
初始化操作
如已经在SD中安装过系统,可以用DiskGenius3.4.5清楚原有数据和Linux分区
安装RaspberryPi操作官方系统 Raspbian “wheezy”下载地址 http://www.raspberrypi.org/downloads 写入SD前先解压出img文件
下载SD卡写入工具Win32DiskImager 翻墙下载 & http://sourceforge.net/projects/win32diskimager/
系统初始化时扩展剩余SD卡空间
配置Pi密码(默认raspberry)、时区、预言、键盘布局并在高级设置中开启SSH
$sudo raspi-config
$sudo apt-get install vim (喜欢这个编辑器)
进入系统配置Wifi
$sudo nano /etc/network/interfaces
$sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
更新RaspberryPi到最新版本(时间较长)
$sudo apt-get update
$sudo apt-get upgrade
小型市场研究公司准备招聘4名销售和IT技术人员,结果收到了大量简历。
不过,招聘人员预计,在向应聘者发问“你最大的缺点是什么?”之后,会有很多人被淘汰。高级副总裁说,对这个问题,应聘者的回答往往并非缺点,他们因此过不了关。
“缺点”问题是求职面试中最常见也最让人头痛的一个问题。而在眼下就业市场疲软的情况下,不恰当的回答将降低你赢得工作的机会。
一些应聘者会给出误以为老板会喜欢的答案,比如,“我的缺点是过于追求完美”。这个回答会对你求职不利,因为它显得你似乎没有能力授权给他人。
为对付这个问题,可事先精心设计好一个答案,以凸显你适合所申请的这个职位。出色回答这个问题的求职者表现出他们能够“主动行动,改善自己”。
当初选购ARM小版的时候考虑到Cubieboard的性能要比树莓派(Raspberry Pi)强一些所以才选择了前者,入手Cubieboard近四个月官方的资料和网络上分享的技术文档还是少的可怜,只能把Cubieboard当一台Linux服务器用,GPIO基本没怎么用。看到网上关于树莓派的各种应用实在很吸引人,决定入手树莓派。
在VPS上部署VPN有一段时间了,但用SSH较多,偶尔用手机连连VPN。最近用的时候遇到一些小问题:“断开VPN连接后再次连接的时候就连不上了”, 重启IPsec后才能恢复。当时安装的时候图省心,直接用的一键脚本,虽然过程中也遇到些小问题,但后来都谷歌解决了,之后也没有记录安装过程。今天连带解决这个问题转发一帖就当复习了。
考虑到很多网络环境的不确定已经一些移动通信网络对pptp的不支持,早晚要用得上L2tp,所以这次就顺便搭一下。
第二层隧道协议L2TP(Layer 2 Tunneling Protocol)是一种工业标准的Internet隧道协议,它使用UDP的1701端口进行通信。L2TP本身并没有任何加密,但是我们可以使用IPSec对L2TP包进行加密。
仅搭建L2tp即可实现大部分功能,但一般情况下L2tp都与IPSec配合使用,MacOS与iOS的设备貌似对L2tp的支持都必须使用IPSec,所以有必要部署IPSec。
服务器上运行了一些小工具属于非服务类的,程序进程本身不是很稳定总是异常关闭写个脚本监视它,判断进程是否存在并启动该进程。
1.Linux判断进程是否存在并启动该进程
#!/bin/bash #判断进程是否存在,如果不存在就启动它 PIDS=`ps -ef |grep myprocess |grep -v grep | awk '{print $2}'` if [ "$PIDS" != "" ]; then echo "myprocess is runing!" else cd /root/ ./myprocess #运行进程 fi
2.linux判断进程是否存在并重启该进程
#!/bin/bash #判断进程是否存在,如果不存在就启动它如果存在就重启它 PIDS=`ps -ef |grep myprocess |grep -v grep | awk '{print $2}'` if [ "$PIDS" != "" ]; then kill -9 $PIDS #先关闭进程,在运行此进程 cd /root/myprocess sudo ./myprocess #重新运行进程 else cd /root/myprocess sudo ./myprocess #运行进程 fi
最后编辑crontab -e 按需要设置运行时间。
Cubieboard就不多介绍了,可以完全当一台运行Linux系统的Mini Server,最大特点就是超低功耗,目前我的Cubieboard已经跑了一个应用,三个月下来一直很稳定《Cubieboard Linaro 搭建超节能监控平台》。
家里宽带是那种小区宽带,不能做端口映射,所以一直用向日葵远程控制家里的电脑,最近向日葵推出了一款硬件产品向日葵开机棒,可以跨网实现远程开机,这功能真不错但价格不便宜而且还要按机器数量购买许可,本篇的宗旨就是用CubieBoard实现向日葵开机棒的功能。
先介绍一下基本环境和条件:小区宽带、内网PC一台、内网Cubieboard一枚、外网Linux VPS一台。目的:使用任意连接互联网的设备远程打开内网PC。
虽然很多Android手机的配置都比iPhone要高,比如大多数Andorid手机的内存都有1GB,而iPhone 4S只有512MB内存,但用过iPhone的人都知道Android手机在使用的时候总感觉没有那么顺滑,究竟为什么会出现这种现象呢?一位软件工程师和前Google实习生Andrew Munn解释说是因为Android系统UI的框架设计的问题。
运行以前用过的Ubuntu虚拟机发现网卡起不来,尝试添加删除网卡依然不好用,总是提示:eth0: ERROR while getting interface flags: No such device ….. Failed to bring up eth0.
好久没有用也没有修改过网卡配置,只记得最近清理电脑的时候移动过虚拟机文件的位置。在网上翻了半天找到原因:由于MAC 地址被缓存了。
解决方法很简单:sudo rm /etc/udev/rules.d/70-persistent-net.rules 然后重启Ubuntu虚拟机即可。