べすとえふぉーと

プログラミング等のノート 

URLを含むテキストが入ったディレクトリに対してwget実行

#!/bin/bash
dirs=$(ls -F | grep /)
rootdir=$(pwd)
for dir in $dirs
do
    cd $rootdir/$dir
    filenames=$(find . -name "*.txt" | cut -c 3-)
    for file in $filenames
    do
        wget -i $(pwd)/$file -nc --no-check-certificate -U ""
        rm $(pwd)/$file
    done
done

curlでDropboxにアップロード(v2)

v1が使えなくなったのでv2

modeをoverwriteで上書き

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer $KEY" \
    --header "Dropbox-API-Arg: {\"path\": \"/file.txt\",\"mode\": \"overwrite\",\"autorename\": true,\"mute\": false}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @file.txt

2つのディレクトリにあるファイルを比較して差分のあるファイルを表示

dir1とdir2がパス

diff -qr dir1/ dir2/ | grep "Files" | cut -d ' ' -f2 

パイプで渡された文字の前に特定の文字列をつける

16進の値が渡ってきたとして、前に0xをつける

echo "A2" | awk '{print "0x" $1}'

RedmineでSSL

Apacheは設定してある前提

Redmineの管理->設定->全般のプロトコルを[HTTPS]に変更

production.rbの最下部に以下を追加

config.force_ssl = true

Apacheを再起動

sudo service apache2 restart

Apache2で443を待ち受けるようにする

以下コマンドを実行

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 restart

/etc/apache2/ssl.confの443の部分を

Listen 443

に変更

もう一回Restart

sudo service apache2 restart

ポートが開いてるかは他のPCからnmapで確認可能

空いてない場合は

sudo ufw enable
sudo ufw allow 443/tcp
sudo ufw reload

apt-getでHash sum mismatchが出る場合の対処

sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update