ssh不输入密码,自动登陆
1.在本机 ~/.ssh 下新建config ,添加服务器ip,以及host简称,格式如下:
Host emall
HostName 139.129.128.51
Port 22
User root
保存后 ssh emall就相当于 ssh root@139.129.128.51
2.在本机终端执行命令
ssh-keygen -t rsa
一路回车执行,会生成key。private_key会保存在 ~/.ssh/id_rsa ,public_key会保存在 ~/.ssh/id_rsa.pub下
3.将本地的public_key复制到远程服务器上实现免登陆
ssh-copy-id -i ~/.ssh/id_rsa.pub root@139.129.128.51
4.完成之后即可通过 ssh emall 来登陆服务器
ruby passenger以及nginx配置等,可参考文章
在服务器上添加自动部署脚本
1.在服务器新建脚本文件 /emall.sh
#!/bin/bash
cd /alidata1/project
git pull origin master
source /etc/profile
bundle
bundle exec rake assets:precompile RAILS_ENV=production
bundle exec rake db:migrate RAILS_ENV=production
god restart nginx #通过god来重启nginx,如果不用god,可以通过sudo nginx -s reload
2.在本地新建脚本 emall_restart.sh
#!/bin/bash
echo '服务器更新开始'
ssh emall '/bin/bash /alidata1/emall.sh'
echo '服务器更新结束'
3.需要重新拉代码更新服务器的时候执行
/bin/bash /home/tlt/work/shell/emall_restart.sh
即可重新部署服务器上的项目