[原]ssh和bash的小技巧

  今天遇到有朋友问几个问题,总结一下:
1、因为本地磁盘空间不够了,怎么把数据快速的备份出来?
答:可以使用tar命令,或rsync命令。例如:

A#tar cvf – /opt | (ssh B "tar xvf – -C /opt")

把A机器上的/opt目录通过tar命令,并通过管道直接打包到B服务器的/opt目录下。
如果网速足够快的话,不要使用z参数,否则会影响速度。

2、如何利用ssh远程导向文本文件?

A#cat id_rsa.pub | (ssh B "cat > /root/.ssh/authorized_keys")

其实这也是利用了ssh命令的参数,只是中间完全没有中间文件,速度更快。

3、ssh窗口关闭,运行的程序也同时关闭了。该如何为此?
  对于这个问题,其实用nohup就可以解决。

#nohup wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz &

  不要忘了最后的&号哦。否则程序就会停在当前屏幕了。(当然,可以使用下面的前台和后台指令调整他)

4、如何把当前工作扔到后台?
  我们经常会在运行一个命令后,才发现他不会自动跳出运行状态,例如:

# wget http://www.realvnc.com/dist/vnc-4.0b5-x86_linux.tar.gz

   他就一直占用当前屏幕,如果我们把当前窗口关闭,wget命令也会终止了。
  此时,你可以按下Ctrl+Z,屏幕会显示:

[1]+ Stopped ncftp

   [1]就是工作代码。已经把wget动作放到后台了,并暂停了。他等于为wget指令增加了一个&的参数。
  使用bg,或bg 1可以把指定的任务在后台继续工作。
  使用fg 1就可以把[1]拿回到当前屏幕(也可以用fg循环)。
※小心,虽然工作在后台,但如果当前是远程ssh窗口,关闭该窗口,后台的命令也会同时终止的。

5、备份含空格的文件

find .  -mtime -1 ! -type d -print | tar cvfz /backup/1/backup-week1.tgz -T –

先用find找出需要备份的文件,然后使用tar的-T参数备份。
(-T后的“-”号不能忽略,其表示前面从管道过来的文件列表)

※2006-09-04 修改bg命令的部分错误
※2007-11-01 增加备份含空格文件的描述

bash 下修改 ulimit 的 pipe size 报错
[转]BASH for 循环小结
[转]Dash与Bash的语法区别
红旗十周年用户大会——广州站(邀请函)
在Windows下使用红旗HA Cluster  配置工具

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/114605.html

(0)
上一篇 2021年8月27日
下一篇 2021年8月27日

相关推荐

发表回复

登录后才能评论