最近一个项目上线了,在开发的过程中用到了一些linux知识,感觉收获不小,虽然自己对于linux命令也懂一些,但是真正用到项目中的这还是第一次,现在来总结一下。
1、date
两台服务器的时间不同步了,时间也不是正确的时间,用date来修改一下
- date -s "2011-03-31 10:18:25"
这样时间就修改了,修改完后,记得输入:clock -w ,把系统时间写入CMOS。
2、ntpdate
国家授时中心服务器的IP地址(210.72.145.44),在linux的shell界面下输入
- ntpdate 210.72.145.44
这样时间就自动更新了。
3、crontab
这个是定时的东西,大家可以参照这篇文章
http://sucre.blog.51cto.com/1084905/531635
4、test
这个命令是用来判断某个文件是否存在的,具体命令如下:
- test 文件运算符
- 利用这些运算符,您可以在程序中根据对文件类型的评估结果执行不同的操作:
- -b file 如果文件为一个块特殊文件,则为真
- -c file 如果文件为一个字符特殊文件,则为真
- -d file 如果文件为一个目录,则为真
- -e file 如果文件存在,则为真
- -f file 如果文件为一个普通文件,则为真
- -g file 如果设置了文件的 SGID 位,则为真
- -G file 如果文件存在且归该组所有,则为真
- -k file 如果设置了文件的粘着位,则为真
- -O file 如果文件存在并且归该用户所有,则为真
- -p file 如果文件为一个命名管道,则为真
- -r file 如果文件可读,则为真
- -s file 如果文件的长度不为零,则为真
- -S file 如果文件为一个套接字特殊文件,则为真
- -t fd 如果 fd 是一个与终端相连的打开的文件描述符(fd 默认为 1),则为真
- -u file 如果设置了文件的 SUID 位,则为真
- -w file 如果文件可写,则为真
- -x file 如果文件可执行,则为真
例如,判断本地文件是否存在
- test -e /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/meeting.txt&&echo true
文件存在则会显示true
也可以判断远程服务器的文件是否存在
- ssh [email protected] "test -e /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/meeting.txt&&echo true"
文件存在显示true
5、scp
这是一个复制命令,是基于ssh的复制命令,网络间安全的传输文件,具体命令如下:
- usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
- [-l limit] [-o ssh_option] [-P port] [-S program]
- [[user@]host1:]file1 [...] [[user@]host2:]file2
解释一下
- scp 源用户名@IP地址:文件名1 目标用户名@IP地址:文件名2
- 可能有用的几个参数:
- -v 和大多数linux命令中的-v意思一样,用来显示进度.可以用来查看连接,认证,或是配置错误.
- -C 使能压缩选项.
- -P 选择端口.注意-p已经被rcp使用.
- -4 强行使用IPV4地址.
- -6 强行使用IPV6地址.
例如:
本地->远程
- scp /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/backup.sh [email protected]:/opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload
远程->本地
刚好是一个反过程
- scp [email protected]:/opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/backup.sh /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload
如果要拷贝文件夹,scp -r 就行了其它都一样
6、ssh
可以参考这篇文章http://sucre.blog.51cto.com/1084905/531677
7、rsync
可以参考这篇文章http://os.51cto.com/art/200903/113682.htm
不过要注意了,这篇文章中有一处地方是错误的,在服务器端对rsyncd.scrt进行配置的时候,直接输入密码123456就可以了,配置客户端的时候要写成"用户名:密码"的形式。
同时要以参考这篇文章http://os.51cto.com/art/200911/165717.htm
8、sftp和rm
- sftp [email protected]
这样就连接上远程服务器了,由于先前配置过ssh了,所以不用输入密码,直接登陆即可,rm -rf删除本地的文件就不说了,说一下删除远程的文件
- ssh [email protected] rm -rf /opt/apusic-5.1/domains/mydomain1/applications/fzbsys/upload/meeting.txt
具体说说stp
sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作。
举例,如远程主机的 IP 是 202.206.64.33或者是域名www.hebust.edu.cn,用户名是 fyt ,在命令行模式下:sftp [email protected]或者 [email protected]。回车提示输入密码。进入提示符
sftp>
如果登陆远程机器不是为了上传下载文件,而是要修改远程主机上的某些文件。可以
ssh [email protected] (其实sftp就是ssh 的一个程式。)
sftp> get /var/www/fuyatao/index.php /home/fuyatao/
这条语句将从远程主机的 /var/www/fuyatao/目录下将 index.php 下载到本地 /home/fuyatao/目录下。
sftp> put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/
这条语句将把本地 /home/fuyatao/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var/www/fuyatao/ 目录下。
你如果不知道远程主机的目录是什么样, pwd命令可以帮您查询远程主机的当前路径。查询本机当前工作目录 lpwd.
改变路径可以用cd ,改变本机路径可以用 lcd;
ls rm rmdir mkdir 这些命令都可以使用。同理调用本机都是加 l , 即 lls lrm.
要离开sftp,用exit 或quit、 bye 均可。详细情况可以查阅 man sftp.
如果觉得在命令行模式下不太方便,可以 sudo apt-get install gftp。在图形界面下操作就简便多了。
有什么不明白的给我留言,等下回再与大家分享。