Ⅰ linux shell腳本執行mysql mysql資料庫在遠程伺服器上
方法一、適合所有格式的mysql資料庫,通過對資料庫導出導進寫個腳本定時執行:
1.導出整個資料庫 mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc > /存放路徑/wcnc.sql
2.導出一個表 mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc users> /存放路徑/wcnc_users.sql
3.導出一個資料庫結構 mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路徑/wcnc_db.sql
定義:
-d 沒有數據
--add-drop-table 在每個create語句之前增加一個drop table
4.導入資料庫 常用source 命令 進入mysql資料庫控制台:
如mysql -u root -p mysql>use 資料庫
方法二、針對mysql數據表格式為MyISAM的
假如數據文件在/var/lib/mysql
那麼直接寫個腳本
cp -r /var/lib/mysql /備份到的文件夾路徑
隔機備份用rsync增量,或定時完整備份。
Ⅱ 如何使用python執行遠程shell腳本
可以使用Python的Fabric包來完成這項任務。
既然是談到Shell腳本,系統應該是Linux/Unix的,遠程訪問,應該是ssh吧。
Fabric功能是將一個任務通過ssh在多台伺服器上執行,而每個任務可以是單條shell指令或是一段python腳本。
Fabric是將Python, Shell和SSH的功能很優雅地結合在了一起,同時自身又非常的輕量,適合大部分伺服器群的日常管理工作。
Ⅲ 本地shell腳本中ssh到遠程伺服器並執行命令
在實際運用中在當前伺服器執行命令後,需要在另一台伺服器繼續執行某些命令,分開去到另一台伺服器執行也是比較麻煩的,因此整理下集中執行的方式
1、首先配置ssh免密操作
Linux 下實現SSH互信: https://www.jianshu.com/p/2456d98aa607
2、簡單命令
ssh [email protected] "cd /var/lib; ls; cd "
2.1 使用時注意,雙引號必須有。若沒加雙引號,第二條及之後的命令會在本地執行
2.2 分號是將兩條語句間隔開
2.3 單雙引的區別:單引號不會解析值,是什麼就傳什麼;雙引號會解析值,將解析結果傳過去
3、多條命令
ssh [email protected]<< reallssh
cd /var/lib/test
tar -zxvf api.com.tar.gz
......
exit
reallssh
3.1 命令寫在 << reallssh(開始) 至 reallssh(結束) 之間
3.2 reallssh可自己定義為其他形式
3.3 在結束前加上exit退出遠程
4、可能遇到的問題
問題:遠程登錄主機時出現Pseudo-terminal will not be allocated because stdin is not a terminal. 錯誤
解決方案:字面意思是偽終端將無法分配,因為標准輸入不是終端。
所以需要增加-t -t參數來強制偽終端分配,即使標准輸入不是終端。
to force pseudo-tty allocation even if stdin isn』t a terminal.
參考樣例如下:
ssh -t -t [email protected] -p 22
--------------------------------------------------------------------------------
參考:https://blog.csdn.net/jinking01/article/details/84386769