写一个简单shell脚本,记录员工的上下班时间。 脚本文件可放置入“/media”文件夹内,用户每次上下班自行执行该脚本。 脚本可向文本文档输出信息,文本文档的名字为:自己名字的拼音.txt
时间: 2024-02-25 16:59:35 浏览: 31
以下是一个简单的shell脚本,用于记录员工的上下班时间,并将记录写入以员工名字拼音命名的文本文档中:
```bash
#!/bin/bash
# 获取当前时间
now=$(date +"%Y-%m-%d %T")
# 获取员工姓名的拼音,这里用名字的拼音作为文件名
name=$(echo $USER | tr 'A-Z' 'a-z' | sed 's/\(.*\)\..*/\1/')
# 检查是否已存在文件,如果不存在则创建一个新文件
if [ ! -f "/media/$name.txt" ]; then
touch "/media/$name.txt"
fi
# 写入上下班记录到文件中
echo "$now" >> "/media/$name.txt"
```
将以上脚本保存为一个文件(例如`attendance.sh`),并将其放置在`/media`文件夹内。用户每次上下班时,只需要在终端中进入`/media`文件夹,并执行该脚本即可:
```bash
cd /media
./attendance.sh
```
执行脚本后,将会在以员工名字拼音命名的文本文档中记录当前时间。例如,如果员工名字为张三,执行脚本后会将记录写入到`/media/zhangsan.txt`文件中。
相关问题
写一个shell脚本,记录员工的上下班时间。 脚本文件可放置入“/media”文件夹内,用户每次上下班自行执行该脚本。 脚本可向文本文档输出信息,文本文档的名字为:自己名字的拼音.txt
好的,以下是一个简单的实现:
```bash
#!/bin/bash
# 获取当前日期和时间
now=$(date +"%Y-%m-%d %H:%M:%S")
# 获取用户的拼音名字
name=$(whoami)
# 设置记录文件的路径和文件名
log_file="/media/${name}.txt"
# 如果记录文件不存在,则创建一个新的文件
if [ ! -f "$log_file" ]; then
touch "$log_file"
fi
# 输出用户的上下班时间到记录文件中
echo "[$now] $name 上下班" >> "$log_file"
```
用户每次上下班自行执行该脚本即可。脚本会在 `/media` 文件夹内创建一个以用户拼音名字命名的文本文件,并将用户的上下班时间记录在文件中。
写一个shell脚本,定时发送sftp多个文件到多个地址,并创建当前时间文件夹
好的,以下是一个简单的shell脚本,用于定时发送多个文件到多个sftp地址,并在每个地址的远程目录下创建当前时间的文件夹:
```
#!/bin/bash
# 设置变量
SFTP_USERNAME="your_username"
SFTP_PASSWORD="your_password"
LOCAL_DIR="/path/to/local/directory"
REMOTE_DIR="/path/to/remote/directory"
# 获取当前时间
TIME=$(date +"%Y-%m-%d-%H-%M-%S")
# 遍历多个sftp地址
for SFTP_HOST in "sftp1.example.com" "sftp2.example.com" "sftp3.example.com"; do
# 连接sftp服务器并创建当前时间的目录
sftp -b - $SFTP_USERNAME@$SFTP_HOST <<EOF
mkdir $REMOTE_DIR/$TIME
quit
EOF
# 遍历多个本地文件
for LOCAL_FILE in $(ls $LOCAL_DIR); do
# 连接sftp服务器并发送文件
sftp -b - $SFTP_USERNAME@$SFTP_HOST <<EOF
put $LOCAL_DIR/$LOCAL_FILE $REMOTE_DIR/$TIME/$LOCAL_FILE
quit
EOF
done
done
```
将上面的脚本保存为一个文件,例如`send_sftp_files.sh`,然后使用`crontab`命令添加一个定时任务,例如每天晚上7点自动发送文件:
```
0 19 * * * /bin/bash /path/to/send_sftp_files.sh
```
注意将上面的路径替换为实际的文件路径。这样,当定时任务触发时,脚本将会连接到多个指定的sftp服务器,并在每个远程目录下创建当前时间的文件夹,然后将本地目录中的所有文件发送到各自的远程目录中。