Shell命令之SCP遠程同步並作定時任務

(1)、寫腳本
scp專爲遠程拷貝設計的 ,傳送過程也使用了ssh加密,可是使用scp要手動輸入用戶名和密碼 網上有不少解決的辦法,這裏我使用 的是expect這個軟件,因此須要先按照expect這個包,最簡單方法經過yum install expect,想了解更多經過man expect進行查看。下邊腳本是經過expect進行無密碼輸入,從遠程直接拷貝文件過來。git

[root@zabbix-server]# yum install expect  -y
[root@zabbix-server script]# cat scp.sh
#! /bin/sh
source /etc/profile         ######引入環境變量
source ~/.bash_profile

export pass=xxxx
export name=xxxx
expect -c "
    spawn scp -r  xxxx@X.X.X.X:/var/opt/gitlab/git-data/repositories/   /data/repositories
    expect {
        \"*assword\" {set timeout -1; send \"$pass\r\"; exp_continue;}
        \"yes/no\" {send \"yes\r\";}
    }
#expect eof
exit"
date +%F-%T

(2)、作定時任務bash

[root@zabbix-server script]# crontab -l
0 1 * * * /root/script/scp.sh >>/tmp/scp.log 2 >& 1

查看日誌,能夠先測試,若是手動執行時成功的,經過定時任務怎麼都不成功的話,通常都是環境變量的問題,因此開頭引入環境變量source /etc/profile source ~/.bash_profilessh

出現過多的進程批量殺掉的方法
ps -ef|grep sshd|grep kjuser|grep -v grep |awk '{print $2}'|xargs kill -9
ps -ef|grep sshd|grep kjuser|grep -v grep |awk '{print $2}'|xargs kill -9ide

相關文章
相關標籤/搜索