在云主机上运行 Linux 脚本的步骤如下(以常见云平台如阿里云、腾讯云、AWS 为例):
方法 1:通过 SSH 连接直接运行
1、登录云主机
使用 SSH 客户端连接(替换<公网IP>
和<用户名>
):
ssh <用户名>@<公网IP> # 示例:ssh root@123.123.123.123
用户名:通常为root
(CentOS)或ubuntu
(Ubuntu)。
密钥登录:如果使用密钥对,添加-i /路径/密钥.pem
参数。
2、上传脚本到云主机(可选)
- 如果脚本在本地,使用scp
上传:
scp -i /路径/密钥.pem /本地/脚本.sh <用户名>@<公网IP>:/远程/目录/ # 示例:scp -i key.pem script.sh root@123.123.123.123:/root/
3、运行脚本
- 赋予执行权限:
chmod +x /路径/脚本.sh
- 执行脚本:
# 方式 1:直接运行 /路径/脚本.sh # 方式 2:用解释器运行(无需权限) bash /路径/脚本.sh
1、登录云控制台
进入云服务商的管理页面(如阿里云 ECS、腾讯云 CVM)。
2、使用 Web Shell
- 在实例详情页找到「远程连接」 或「登录」 按钮(如阿里云的"Workbench"、腾讯云的"WebShell")。
- 通过网页终端直接执行命令。
3、粘贴并运行脚本
# 直接粘贴脚本内容到终端运行 echo -e '#!/bin/bash\necho "Hello World"' > myscript.sh chmod +x myscript.sh ./myscript.sh
方法 3:利用 User Data(启动脚本)
>适用场景:实例首次启动时自动运行(如初始化配置)。
1、创建实例时配置
- 在云平台创建实例的「高级设置」 中找到User Data 输入框。
- 填写脚本内容(首行必须是#!/bin/bash
):
#!/bin/bash yum install nginx -y # CentOS 示例 systemctl start nginx echo "Init completed!" > /tmp/done.log
2、实例启动后验证
# 查看日志(路径因云平台而异) cat /var/log/cloud-init-output.log
方法 4:通过定时任务(Cron)运行
1、编辑 Cron 任务
crontab -e # 进入编辑模式
2、添加定时任务
# 每天凌晨 2 点运行脚本 0 2 * * * /root/script.sh > /root/script.log 2>&1
3、重启 Cron 服务
systemctl restart crond # CentOS systemctl restart cron # Ubuntu
1、权限不足
chmod +x script.sh # 添加执行权限 sudo ./script.sh # 用 root 执行
2、脚本编码问题
sed -i 's/\r$//' script.sh # 转换 Windows 换行符为 Unix 格式
3、依赖缺失
在脚本开头安装所需工具:
#!/bin/bash yum install -y curl wget # CentOS apt-get update && apt-get install -y curl wget # Ubuntu
测试脚本:先在本地虚拟机测试,再上传到云主机。
日志记录:脚本中添加日志输出(如>> /var/log/myscript.log
)。
安全加固:
- 避免在脚本中硬编码密码。
- 使用云平台的密钥对 或RAM 角色 管理权限。
通过以上方法,你可以灵活地在云主机上运行各类 Linux 脚本。
文章摘自:https://idc.huochengrm.cn/zj/13095.html
评论