2020年7月

  • 编写脚本 sh_cover_history.sh
#!/bin/bash

self_path=`pwd`;
history_path=$self_path"_history"

if [ ! -d $history_path ];then
  mkdir $history_path
fi

for vv in {20..1}
do
    cd $self_path
    git checkout master
    git_hashcode=`git log -n $vv --pretty=format:"%H"`
    v2=0;
    for line in $git_hashcode
    do
        declare -i v2=$v2+1;
        if [ "$v2" -eq "$vv" ]
        then
            echo $line;
            git checkout $line
            git reset --hard
            cd ..
            cp -rf $self_path/* $history_path
        fi
    done
done

cd $self_path
git checkout master
# cp -rn $self_path/* $history_path
  • 创建一个单独的历史文件目录 history
  • 拷贝原有 project_xxxx 需要做版本历史的目录到 history 目录中
  • 拷贝 sh_cover_history.shhistory/project_xxxx/
  • 打开 history/project_xxxx/ 目录, 执行 sh_cover_history.sh 文件
  • 需求实现完成

相同的文件内容的shell, 相同的权限, 出现部分情况下无法正确执行的情况

遇到过一起, window下创建的shell, 拷贝到linux下同php无法正确全部执行其中的shell内容, 后来打开看了发现, window下创建的脚本通过vim打开多个 xxx.sh" [dos] 12L, 330C 其中的 [doc] 导致脚本一些执行上的问题
通过cat -A xxx.sh 显示的换行符为 ^M$, linux下创建的文件换行符为 $
转换window换行符为linux sed -i 's/\r//' 文件名
即使解决了换行符问题, 还有新的编码问题出现, 所以脚本千万别在window机器下编写拷贝到linux机器中, 需要通过linux创建文件编辑, window拷贝内容粘贴进去最靠谱

设置普通用户输入sudo,免密进入root账户

方法一:
编辑并在用户相关的内容后面添加需要免密登录的帐号
vim /etc/sudoers
> admin ALL=(ALL) NOPASSWD: ALL

方法二: (未测试)
开始系统内部的wheel用户组,
在/etc/suoers 中编辑配置文件如下:
%wheel ALL=(ALL) NOPASSWD: ALL
比如新开账户为mike,
useradd mike|echo "1234546"|passwd mike
id mike(查看用户归属用户组)---uid 和 gid
uid=505(mike) gid=505(mike) groups=505(mike)
通过usermod 命令更改用户所属用户组

[root@backup ~]# usermod mike -g wheel
[root@backup ~]# id mike
uid=505(mike) gid=10(wheel) groups=10(wheel)

更改为wheel组下的 ,
然后在mike用户下再sudo su 切换既不用输入密码了