阅读量:64
在Debian系统中,使用Crontab可以实现定时任务和远程执行。要实现远程执行,你需要使用SSH(Secure Shell)协议。以下是实现远程执行的步骤:
- 在远程计算机上安装并启动SSH服务。Debian默认已经安装了OpenSSH服务器。如果没有,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install openssh-server
- 确保远程计算机的防火墙允许SSH连接。如果使用的是UFW防火墙,可以使用以下命令允许SSH连接:
sudo ufw allow ssh
- 在本地计算机上生成SSH密钥对(如果还没有)。使用以下命令生成密钥对:
ssh-keygen -t rsa
按照提示操作,将密钥对保存在默认位置(通常是~/.ssh/id_rsa和~/.ssh/id_rsa.pub)。
- 将本地计算机的公钥复制到远程计算机的
authorized_keys文件中。使用以下命令将公钥复制到远程计算机:
ssh-copy-id user@remote_host
其中,user是远程计算机上的用户名,remote_host是远程计算机的IP地址或主机名。按照提示操作,将公钥添加到远程计算机的authorized_keys文件中。
- 在本地计算机上编辑Crontab文件。使用以下命令编辑Crontab文件:
crontab -e
- 在Crontab文件中添加一行,指定定时任务和远程执行命令。例如,每天凌晨1点执行远程计算机上的
/path/to/remote/script.sh脚本,可以添加以下内容:
0 1 * * * ssh user@remote_host '/path/to/remote/script.sh'
保存并退出Crontab文件。
现在,Crontab将按照指定的时间执行远程计算机上的脚本。请确保远程计算机上的脚本具有可执行权限,并且远程计算机上的SSH服务正在运行。