批量Linux实例清理垃圾并创建自动每周清理计划
#!/bin/bash
# Delete old files in the /tmp directory that are no longer needed
find /tmp -type f -mtime +7 -delete
# Delete all files in the /tmp directory that have a .tmp extension
rm /tmp/*.tmp
# Empty the trash directory
trash-empty
# Find large files or directories that are taking up a lot of space on the server
# and delete them if they are no longer needed
for file in $(du -a / | sort -n -r | head -n 10); do
if [ -f "$file" ]; then
rm "$file"
fi
done
bash -c "cat > /path/cleanup_script.sh" <<EOF
#!/bin/bash
# Delete old files in the /tmp directory that are no longer needed
find /tmp -type f -mtime +7 -delete
# Delete all files in the /tmp directory that have a .tmp extension
rm /tmp/*.tmp
# Empty the trash directory
trash-empty
# Find large files or directories that are taking up a lot of space on the server
# and delete them if they are no longer needed
for file in $(du -a / | sort -n -r | head -n 10); do
if [ -f "$file" ]; then
rm "$file"
fi
done
EOF
# Schedule the script to run every week
crontab -l > mycron
echo "0 0 * * 0 /path/cleanup_script.sh" >> mycron
crontab mycron
rm mycron
查询资产CPU 内存 磁盘使用情况计划
#!/bin/bash
echo "CPU usage:"
top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}'
echo "Memory usage:"
free -h | grep "Mem" | awk '{print $3 "/" $2}'
echo "Disk usage:"
df -h | grep "^/dev/" | awk '{print $3 "/" $2}'
自动定时重启计划,如每天10点15分重启表达值为 0 15 10 ? * * 表达值可自行修改 0 0 05 * * ? 为5点执行
#!/bin/bash
reboot
修改用户密码计划:
如修改用户ubuntu 新密码为123456
!/usr/bin/expect -f
spawn passwd ubuntu
expect "New Password:"
send "123456\r"
expect "Retype New Password:"
send "123456\r"
expect eof
当一个项目需要归集数据是文本时,比如一些项目自动创建的钱包数据为JSON文件,我们需要保存该文件已被以后导入钱包使用。比如 q-dev项目生成ERC20钱包为以太JSON文件导入。在没有解析秘钥时,我们需要把该文件下载保存,代码如下:
该钱包文件保存在/root/testnet-public-tools/testnet-validator/keystore/目录下,开头为UTC-******,
#!/bin/bash
# 判断scp命令是否已安装
if ! command -v scp > /dev/null; then
# scp命令未安装,执行安装操作
# 这里假设您使用的是Debian或Ubuntu系统
apt-get update
apt-get install -y openssh-client
fi
# 获取本机IP地址
local_ip=$(curl ifconfig.me)
# 连接远程服务器,并使用本机IP地址作为文件名
scp -o "StrictHostKeyChecking no" -o "UserKnownHostsFile /dev/null" /root/testnet-public-tools/testnet-validator/keystore/UTC* root@192.1.89.100:/data/${local_ip}.json
# 交互式输入远程服务器密码
echo "Enter password for root@192.1.89.100:"
read -s password
echo
# 使用expect工具处理交互式输入
expect -c "
set timeout -1
spawn scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null /root/testnet-public-tools/testnet-validator/keystore/UTC* root@192.1.89.100:/data/${local_ip}.json
expect {
\"Are you sure you want to continue connecting (yes/no)?\" {
send \"yes\r\"
expect {
\"password:\" { send \"$password\r\" }
}
}
\"password:\" { send \"$password\r\" }
}
expect eof
"
if [ $? -ne 0 ]; then
# scp命令执行失败,打印错误信息并退出脚本
echo "Error: scp command failed."
exit 1
fi
# scp命令执行成功,打印提示信息
echo "File transferred successfully."
自动计划表达值表述介绍
(1)0/2 * * * * ? 表示每2秒 执行任务
(1)0 0/2 * * * ? 表示每2分钟 执行任务
(1)0 0 2 1 * ? 表示在每月的1日的凌晨2点调整任务
(2)0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业
(3)0 15 10 ? 6L 2002-2006 表示2002-2006年的每个月的最后一个星期五上午10:15执行作
(4)0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
(5)0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
(6)0 0 12 ? * WED 表示每个星期三中午12点
(7)0 0 12 * * ? 每天中午12点触发
(8)0 15 10 ? * * 每天上午10:15触发
(9)0 15 10 * * ? 每天上午10:15触发
(10)0 15 10 * * ? 每天上午10:15触发
(11)0 15 10 * * ? 2005 2005年的每天上午10:15触发
(12)0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
(13)0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
(14)0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
(15)0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
(16)0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发
(17)0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
(18)0 15 10 15 * ? 每月15日上午10:15触发
(19)0 15 10 L * ? 每月最后一日的上午10:15触发
(20)0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发
(21)0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发
(22)0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发
在ubuntu安装桌面,webssh连接更方便
sudo apt -y update
sudo apt -y upgrade
sudo apt install -y ubuntu-desktop
sudo apt install -y lightdm
sudo service lightdm start
sudo apt install -y xrdp
安装谷歌浏览器
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb
安装中文
sudo apt-get install -y language-pack-zh-hans