引言
寒假回家,社团里的电脑配置好了开发环境,不想在笔记本上再配置一遍了,利用teamviewer远程操控,但是免费的有时长限制,一段时间后自动掉线,寒假里社团没人,因为疫情的原因还不知道能不能正常开学,就想让社团电脑自动运行一个脚本,然后把teamviewer的界面ID和密码发给我。折腾了一个晚上,终于弄好了,浅浅记录一下。
我的配置是ubuntu20.04
流程
我是想用命令行打开teamviewer,然后利用截屏工具截屏,然后再通过邮件发送给我。
shell脚本
使用编辑器编辑脚本(vim为例)
~$mkdir myshell
~$cd myshell
~/myshell$vim test1.sh
~/myshell/test1.sh内容如下:
#! /bin/bash
echo "here \n" >> /home/glc/info.txt
功能是将“here”输入到info.txt文件中
先添加可执行权限再运行
~/myshell$chmod +x test1.sh
~/myshell$./test1.sh
打开相应目录可以看到已经生成了info.txt,内容就是“here”
参考linux编写自动运行一串命令的脚本_jiayuzhang128的博客-CSDN博客_linux写脚本执行命令
scrot
它是一款截屏工具,安装命令
sudo apt install scrot
scrot使用 - 孙愚 - 博客园 具体用法参考这个博客
mailx
一款可以使用命令行发送邮件的软件,安装和使用方法参考在 Linux 命令行发送邮件的 5 种方法(推荐)(linux如何发送邮件)-服务器教程-知优网
teamviewer
直接到官网下载对应版本,然后解压安装即可
crontab
一个自动运行的工具,具体用法参考下面两篇文章:
集成
最后的工作就是将各个部分写成脚本,放在crontab文件里定时运行。
下面是我用到的四个脚本
<pretask.sh>#将原来的pictures文件里的截屏删除,并且创建pictures文件
#!/bin/bash
rm -rf /home/glc/pictures
cd /home/glc
mkdir pictures
<startteamv.sh>#启动teamviewer
#! /bin/bash
teamviewer
<shoot.sh>#截图
#!/bin/bash
scrot /home/glc/pictures/shoot.png
<sendemail.sh>#发送邮件
#! /bin/bash
echo "come on" | heirloom-mailx -a ~/pictures/shoot.png -s "come on" 1825583xxxx@139.com
然后在crontab里设置几个脚本的定时启动顺序,没有把所有脚本放到一起执行是因为teamviewer启动准备好需要较长时间,一起执行就会导致还没显示ID就已经截屏了。
输入crontab -e 在末尾添加上下面几行即可。
#control computer from far away
0 8 * * * cd /home/glc/myshell && ./pretask.sh
1 8 * * * cd /home/glc/myshell && ./startteamv.sh
9 8 * * * cd /home/glc/myshell && ./shoot.sh
10 8 * * * cd /home/glc/myshell && ./sendemail.sh