rsyncとは、フォルダやファイルを「差分だけ」コピーして、コピー元とコピー先を同じ状態にそろえるコマンドです。2回目以降は変わったファイルだけを送るので速く、ssh経由で別のサーバーとも同期できます。バックアップ、デプロイ、サーバー移行などで広く使われています。

この記事では、オプション一覧と目的別のコピペ例をまとめ、すべて実際に実行して出力を載せています(rsync 3.2.7 / Ubuntu 24.04)。つまずきやすい末尾スラッシュの有無を tree で比較し、--delete を dry-run で安全に確かめる手順、--exclude のパターンの落とし穴、ローカルに立てたsshサーバーへのssh経由の同期、転送が途中で切れたときの再開(--partial)の効果、--link-dest による世代バックアップの容量も実測しました。

rsyncのオプション一覧(早見表)

オプション 意味
-a アーカイブモード。-rlptgoD をまとめたもの(下で詳しく説明)
-v 転送したファイル名を表示
-z 転送中に圧縮(ssh越しで効果あり。ローカルでは不要)
-P --partial --progress と同じ。途中で切れても再開でき、進捗も出る
--info=progress2 ファイルごとではなく、全体の進捗を1行で表示
-n / --dry-run 実際には何もせず、何が起きるかだけ表示
-i / --itemize-changes ファイルごとに「何が変わったか」を記号で表示
--delete コピー元にないファイルをコピー先から削除(完全な同期)
--delete-excluded 除外したファイルもコピー先から削除
--max-delete=N 削除がN件を超えたら止める(0で「削除せず警告」)
--exclude='パターン' 除外する
--include='パターン' 対象に含める(--exclude より前に書く)
--exclude-from=ファイル 除外パターンをファイルから読む(1行1パターン)
-m / --prune-empty-dirs 空のフォルダを作らない
-b / --backup 上書き・削除されるファイルを退避する
--backup-dir=DIR 退避先のフォルダ(-b と一緒に使う)
-u / --update コピー先の方が新しいファイルは上書きしない
-c / --checksum 日時とサイズではなく、中身のチェックサムで比べる
--bwlimit=RATE 転送速度の上限(例:5m で約5MB/秒)
--partial 途中まで送ったファイルを残して、次回そこから再開
-e 'ssh ...' ssh のオプションを指定(ポートや鍵)
--mkpath コピー先のフォルダを途中の階層ごと作る(3.2.3以降)
--link-dest=DIR 変わっていないファイルは DIR へのハードリンクにする(世代バックアップ)
-H / -A / -X ハードリンク / ACL / 拡張属性も保つ(-a には含まれない)

目的別コピペ

やりたいこと コマンド
フォルダの中身をコピー rsync -av src/ dst/
完全に同期(余分なファイルも消す) rsync -av --delete src/ dst/
同期の前に確認 rsync -avn --delete src/ dst/
一部を除外 rsync -av --exclude='node_modules/' --exclude='*.log' src/ dst/
特定の拡張子だけ rsync -av --include='*/' --include='*.md' --exclude='*' -m src/ dst/
サーバーへアップロード rsync -avz src/ user@server:/srv/app/
サーバーからダウンロード rsync -avz user@server:/var/log/app/ ./logs/
ポートや鍵を指定 rsync -av -e 'ssh -p 10022 -i ~/.ssh/key' src/ user@server:/srv/app/
大きなファイルを再開可能に rsync -aP big.iso user@server:/data/
消す・上書きするファイルを退避 rsync -a --delete --backup --backup-dir=../_trash/$(date +%F) src/ dst/
毎日の世代バックアップ rsync -a --delete --link-dest=/backup/latest src/ /backup/$(date +%F)/

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「rsyncの使い方|オプション一覧と目的別コピペ例(実行結果つき)」

rsyncの基本の書き方

rsync [オプション] コピー元 コピー先
形 例
ローカル同士 rsync -av src/ backup/
手元 → サーバー(push) rsync -av src/ user@server:/srv/app/
サーバー → 手元(pull) rsync -av user@server:/srv/app/ ./app/

ssh経由で使う場合は、手元とサーバーの両方に rsync が入っている必要があります。サーバー側で rsync が見つからないと rsync: command not found のようなメッセージで止まるので、サーバーにもインストールします。

バージョンは rsync --version で確認できます。

$ rsync --version | head -1
rsync  version 3.2.7  protocol version 31

2026年9月時点の最新版は 3.4.4(2026年6月公開)です。3.4.0 で重要なセキュリティ修正が入っているので、特にrsyncデーモンを公開している環境では、OSの更新で新しい版にしておくと安心です。この記事のオプションは 3.2.7 と 3.4 系で共通です。

末尾スラッシュの有無で結果が変わる

rsyncでいちばん大切なルールは「コピー元の末尾に / を付けると中身だけ、付けないとフォルダごと」です。

rsync -a src dst1     # 末尾スラッシュなし
rsync -a src/ dst2    # 末尾スラッシュあり
tree -a -L 2 dst1 dst2
dst1
└── src              ← フォルダごとコピーされた
    ├── .git
    ├── README.md
    ├── cache
    ├── debug.log
    ├── docs
    └── images
dst2                 ← 中身だけがコピーされた
├── .git
│   └── HEAD
├── README.md
├── cache
│   └── a.tmp
├── debug.log
├── docs
│   ├── guide.md
│   └── spec.md
└── images
    └── logo.png
コマンド 結果
rsync -a src dst/ dst/src/... ができる
rsync -a src/ dst/ dst/... に中身が入る
rsync -a src/ dst/src/ dst/src/... に中身が入る(上の1行目と同じ結果)

コピー先の末尾スラッシュは、結果に影響しません。迷ったら「コピー元もコピー先も / で終える」と決めておくと、毎回同じ結果になります。

-a(アーカイブモード)の中身

-a は次のオプションをまとめたものです。rsync --help にも archive mode is -rlptgoD (no -A,-X,-U,-N,-H) と表示されます。

含まれる 意味
-r フォルダの中も再帰的にコピー
-l シンボリックリンクをリンクのままコピー
-p パーミッションを保つ
-t 更新日時を保つ(差分判定に必要)
-g / -o グループ / 所有者を保つ(所有者はroot実行時)
-D デバイスファイル・特殊ファイルを保つ
含まれない 意味 使う場面
-H ハードリンクを保つ --link-dest で作ったバックアップを別ディスクに移す
-A ACLを保つ 細かいアクセス権を設定しているフォルダ
-X 拡張属性を保つ SELinuxのラベルなど

-t で日時を保つことで、次回「日時とサイズが同じなら送らない」という判定ができます。-a を付けずに -r だけで同期すると、日時がそろわないため毎回すべてのファイルを送り直すことになります。

-H の有無で、ハードリンクを含むフォルダ(同じ10MBのファイルに2つの名前がある状態)をコピーしました。

$ du -sh hl
9.6M    hl
$ rsync -a hl/ hlA/ && du -sh hlA
20M     hlA         ← -a だけだと別々のファイルになり2倍に
$ rsync -aH hl/ hlH/ && du -sh hlH
9.6M    hlH

実行結果で見る:初回と2回目の違い

$ rsync -av src/ backup/
sending incremental file list
created directory backup
./
README.md
debug.log
.git/
.git/HEAD
cache/
cache/a.tmp
docs/
docs/guide.md
docs/spec.md
images/
images/logo.png

sent 200,716 bytes  received 209 bytes  401,850.00 bytes/sec
total size is 200,035  speedup is 1.00

変更せずにもう一度実行すると、何も送られません。

$ rsync -av src/ backup/
sending incremental file list

sent 313 bytes  received 16 bytes  658.00 bytes/sec
total size is 200,035  speedup is 608.01

speedup は「全体のサイズ ÷ 実際に送った量」です。2回目は313バイトのやり取りだけで済み、608倍の効率になりました。

-i(itemize)で「何が変わったか」を見る

ファイルを1つ変更、1つ追加、1つ削除して -i を付けました。

$ rsync -ai --delete src/ backup/
*deleting   debug.log
.d..t...... ./
.d..t...... docs/
>f+++++++++ docs/new.md
>f..t...... docs/spec.md
記号 意味
1文字目 > ファイルを送った(受け取った)
1文字目 c 作成した(フォルダなど)
1文字目 . 送っていない(属性だけ更新)
2文字目 f / d ファイル / フォルダ
+++++++++ 新しく作られた
s サイズが違った
t 更新日時が違った
c(3文字目) チェックサムが違った(-c 使用時)
*deleting 削除した

--delete を安全に使う手順

--delete は、コピー元にないファイルをコピー先から削除して、完全に同じ状態にするオプションです。便利な反面、コピー先を間違えると必要なファイルも消えるので、次の手順で確かめてから実行すると安心です。

手順1:-n(dry-run)で何が消えるか確認する

$ rsync -avn --delete src/ backup/
sending incremental file list
deleting debug.log
./
docs/
docs/new.md
docs/spec.md

sent 335 bytes  received 48 bytes  766.00 bytes/sec
total size is 200,035  speedup is 522.28 (DRY RUN)

最後に (DRY RUN) と表示され、実際には何も変わっていません。deleting の行が、実行すると消えるファイルです。

手順2:コピー先を1階層まちがえた例

archive/ の下に src/ のコピーと、別の other-project/ がある状態です。

archive
├── other-project
│   └── data.csv
└── src
    ├── .git
    ├── README.md
    ...

本当は archive/src/ と書くべきところを archive/ と書いて dry-run すると、次のように表示されました。

$ rsync -avn --delete src/ archive/ | grep -E 'deleting|DRY'
deleting src/images/logo.png
...(中略)
deleting src/
deleting other-project/data.csv
deleting other-project/
total size is 200,037  speedup is 254.50 (DRY RUN)
$ rsync -avn --delete src/ archive/src/ | grep -E 'deleting|DRY'
total size is 200,037  speedup is 480.86 (DRY RUN)     ← 正しい宛先なら削除なし

dry-run で deleting が思ったより多いときは、コピー先のパスと末尾スラッシュを見直します。

手順3:--max-delete=0 で「消すものがあれば止める」

$ rsync -a --delete --max-delete=0 src/ archive/src/
Deletions stopped due to --max-delete limit (1 skipped)
rsync error: the --max-delete limit stopped deletions (code 25) at main.c(1356) [sender=3.2.7]

--max-delete=0 は、削除対象があれば削除せずに終了コード25で知らせます。定期実行のスクリプトで「普段は削除が出ないはず」の同期に付けておくと、異常に気づけます。上限を件数で決めたいときは --max-delete=100 のように書きます(上限に達するまでは削除されます)。

手順4:--backup-dir で消えるファイルを退避しておく

$ rsync -a --delete --backup --backup-dir=../_trash/$(date +%Y%m%d) src/ archive/src/
$ tree -a archive/_trash
archive/_trash
└── 20260929
    ├── docs
    │   └── spec.md      ← 上書きされる前の古い版
    └── old.md           ← 削除されたファイル

$ cat archive/_trash/*/docs/spec.md
v2

--backup-dir の相対パスは、コピー先フォルダからの相対パスになります。上書き前の版と削除されたファイルが日付のフォルダに残るので、あとから取り戻せます。

--exclude / --include のつまずきポイント

パターンの書き方で、除外される範囲が変わります。src/cache/ と src/docs/cache/ の2つの cache があるフォルダで試しました。

パターン 除外されたもの 解説
--exclude='cache' 両方の cache 名前が一致すれば、どの階層でも除外
--exclude='/cache' 先頭の cache だけ 先頭の / は「コピー元の直下」という意味
--exclude='cache/' 両方の cache(フォルダのみ) 末尾の / はフォルダだけに一致
--exclude='src/cache' 何も除外されない コピー元が src/ のとき、パスに src/ は含まれない
--exclude='*.log' すべての .log ファイル ワイルドカード
--exclude='docs/**' docs の中身すべて ** は / をまたいで一致
$ rsync -a --exclude='/cache' src/ ex2/ && tree -a ex2 | grep -n cache
6:│   ├── cache           ← docs/cache は残る

$ rsync -a --exclude='src/cache' src/ ex4/ && tree -a ex4 | grep -n cache
5:├── cache
8:│   ├── cache           ← どちらも除外されていない

先頭の / は、ファイルシステムの / ではなく「コピー元のフォルダの直下」を指します。src/cache のようにコピー元の名前を含めると一致しないので注意します。

特定の拡張子だけをコピーする(include と exclude の順番)

rsyncは、パターンを上から順に見て最初に一致したものを使います。そのため --include を先に、--exclude='*' を最後に書きます。

$ rsync -a --exclude='*' --include='*.md' src/ ex7/ && tree -a ex7
ex7

0 directories, 0 files               ← 先に exclude '*' に一致して全部除外

$ rsync -a --include='*.md' --exclude='*' src/ ex6/ && tree -a ex6
ex6
└── README.md                         ← フォルダも除外されて、中の .md に届かない

$ rsync -a --include='*/' --include='*.md' --exclude='*' -m src/ ex8/ && tree -a ex8
ex8
├── README.md
└── docs
    ├── guide.md
    ├── new.md
    └── spec.md

--include='*/' でフォルダの中に入れるようにし、-m で空のフォルダを作らないようにするのが定番の書き方です。-m を付けないと、.git や cache のような空のフォルダも作られました。

ssh経由で同期する

ローカルに sshd を立て、~/.ssh/config と同じ書き方の設定ファイル(ssh.conf)で backup-server という名前を付けて試しました。

Host backup-server
    HostName 127.0.0.1
    Port 7273
    User root
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes

アップロード(push)

$ rsync -avz -e 'ssh -F ssh.conf' src/ backup-server:/tmp/t27rb/site/
sending incremental file list
created directory /tmp/t27rb/site
./
README.md
.git/
.git/HEAD
cache/
cache/a.tmp
docs/
docs/guide.md
docs/new.md
docs/spec.md
docs/cache/
docs/cache/c.tmp
images/
images/logo.png

sent 200,836 bytes  received 241 bytes  402,154.00 bytes/sec
total size is 200,037  speedup is 0.99

~/.ssh/config に書いたホスト名は、rsync でもそのまま使えます。普段は -e を付けずに rsync -avz src/ backup-server:/srv/site/ と書けます(今回は検証用の設定ファイルを読ませるために -e 'ssh -F ssh.conf' を付けています)。

ダウンロード(pull)

$ rsync -av -e 'ssh -F ssh.conf' backup-server:/tmp/t27rb/site/docs/ pulled2/
receiving incremental file list
created directory pulled2
./
guide.md
new.md
spec.md
cache/
cache/c.tmp

ポートや鍵を直接指定する

rsync -av -e 'ssh -p 7273 -i ~/.ssh/id_ed25519' src/README.md root@127.0.0.1:/srv/site/

コピー先のフォルダが深くて存在しないとき(--mkpath)

$ rsync -a -e 'ssh -F ssh.conf' src/ backup-server:/nonexistent/deep/dir/
rsync: [Receiver] mkdir "/nonexistent/deep/dir" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at main.c(800) [Receiver=3.2.7]

$ rsync -a --mkpath -e 'ssh -F ssh.conf' src/ backup-server:/tmp/t27rb/deep/new/dir/
(成功)

rsyncが自動で作るのはコピー先の最後の1階層だけです。途中の階層もまとめて作るには --mkpath を付けます。

接続できないときのエラー

$ rsync -a -e 'ssh -F ssh.conf -p 7274' src/ backup-server:/srv/x/
ssh: connect to host 127.0.0.1 port 7274: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(232) [sender=3.2.7]

connection unexpectedly closed が出たら、その上の行(ssh のメッセージ)に本当の原因があります。まず ssh backup-server 単体で接続できるかを確かめます。

大きなファイルを送る:進捗・帯域制限・再開

全体の進捗を表示する

$ rsync -a --info=progress2 big.bin out_big.bin
     30,000,000 100%  583.24MB/s    0:00:00 (xfr#1, to-chk=0/1)

帯域を制限する(--bwlimit)

$ rsync -aP --bwlimit=5m big.bin out_big.bin
     16,744,448  55%    5.00MB/s    0:00:02
     22,315,008  74%    5.00MB/s    0:00:01
     27,885,568  92%    5.00MB/s    0:00:00
     30,000,000 100%    5.08MB/s    0:00:05 (xfr#1, to-chk=0/1)

--bwlimit=5m で、ほぼ5MB/秒に抑えられました。日中に共有の回線を使うときに役立ちます。

途中で切れても続きから送る(--partial)

30MBのファイルを5MB/秒で送り、3秒で強制終了してから、もう一度送りました。

$ timeout 3 rsync -a --partial --bwlimit=5m -e 'ssh -F ssh.conf' big.bin backup-server:/tmp/t27rb/big/
$ ls -l /tmp/t27rb/big/
-rw-r--r-- 1 root root 15040512 Jan  1  1970 big.bin       ← 途中までのファイルが残る

$ rsync -a --partial --stats -e 'ssh -F ssh.conf' big.bin backup-server:/tmp/t27rb/big/ | grep -E 'Literal|Matched'
Literal data: 14,961,152 bytes      ← 実際に送った量
Matched data: 15,038,848 bytes      ← 途中までのファイルを再利用できた量

--partial を付けると、途中まで送った約15MBが再利用され、残りの約15MBだけが送られました。--partial なしで同じように止めると、コピー先には何も残りませんでした。大きなファイルは -P(--partial --progress)を付けて送るのがおすすめです。

-u と --checksum:比べ方を変える

-u:コピー先の方が新しければ上書きしない

$ rsync -aiu src/ archive/src/
(何も表示されない:コピー先の README.md が新しいので飛ばした)

$ rsync -ai src/ archive/src/
>f.st...... README.md               ← -u なしでは上書き

--checksum:日時とサイズが同じでも中身で比べる

中身は違うが、サイズと更新日時が同じファイルを用意しました。

$ rsync -ai c1.txt cs/
(何も表示されない:日時とサイズが同じなので同一とみなした)

$ rsync -aic c1.txt cs/
>fc........ c1.txt                  ← チェックサムの違いを検出して送った

rsyncは既定で「更新日時とサイズ」で判定するため、とても速い反面、この2つが同じだと中身の違いを見逃します。確実に中身をそろえたいときは -c を付けます。全ファイルを読むので時間はかかります。

--link-dest で世代バックアップ(容量を実測)

--link-dest を使うと、前回から変わっていないファイルはハードリンク(同じデータに別の名前を付ける仕組み)になり、日付ごとの完全なフォルダを少ない容量で残せます。

#!/bin/bash
# snapshot.sh:毎日の世代バックアップ
set -eu
SRC=/srv/data/
DEST=/backup/snapshots
TODAY=$(date +%F)

mkdir -p "$DEST"
rsync -a --delete --link-dest="$DEST/latest" "$SRC" "$DEST/$TODAY/"
ln -sfn "$DEST/$TODAY" "$DEST/latest"

約54MB・1,200ファイルほどのフォルダで、1日に1〜2ファイルずつ変更しながら3世代作りました。

$ du -sh snapshots/*
54M     snapshots/2026-09-27
432K    snapshots/2026-09-28
404K    snapshots/2026-09-29

$ du -sh snapshots
55M     snapshots

3世代とも中身がそろった完全なフォルダなのに、合計は55MBでした。2世代目以降は、変わったファイルとフォルダの情報のぶんだけ増えています。変わっていないファイルは同じ inode(ファイルの実体の番号)を共有しています。

$ ls -li snapshots/*/abc.py | awk '{print $1, $3, $NF}'
2622023 3 snapshots/2026-09-27/abc.py      ← 同じ番号、リンク数3
2622023 3 snapshots/2026-09-28/abc.py
2622023 3 snapshots/2026-09-29/abc.py

古い世代を削除しても、ほかの世代のファイルは残ります。

$ rm -rf snapshots/2026-09-27 && du -sh snapshots/*
54M     snapshots/2026-09-28
404K    snapshots/2026-09-29

--link-dest の相対パスに注意

$ rsync -a --link-dest=2026-09-28 data/ snapshots/bad/
--link-dest arg does not exist: 2026-09-28
$ du -sh snapshots/bad
54M     snapshots/bad          ← リンクされず、全部コピーされた

--link-dest の相対パスは、コピー先フォルダからの相対パスです。snapshots/bad/ から見た前回分は ../2026-09-28 になります。迷ったら上のスクリプトのように絶対パスで書きます。初回(前回分がまだない)は同じメッセージが出ますが、通常のコピーとして完了します。

cp・scp との違い

比較 cp scp rsync
別のサーバーへ 不可 可(ssh) 可(ssh・rsyncデーモン)
2回目以降 すべてコピー すべて送る 差分だけ
削除の同期 なし なし --delete
除外 なし なし --exclude / --include
途中からの再開 なし なし --partial
事前確認 なし なし -n(dry-run)
向いている用途 手元での1回きりのコピー 小さなファイルを1回送る 同期・バックアップ・大量のファイル

1回だけ数ファイルを送るなら scp、繰り返し同じフォルダをそろえるなら rsync、と使い分けると便利です。

macOS・Windowsでの注意

環境 注意点
macOS Sequoia 15.4 以降 標準の rsync が openrsync に置き換わった。対応していないオプションがあるため、この記事のオプションを確実に使うなら Homebrew で rsync を入れる
Windows WSL(Windows Subsystem for Linux)上の rsync を使うのが手軽。Windowsのフォルダは /mnt/c/... で指定

rsync --version を実行し、1行目に rsync version 3.x と表示されるかを確認すると、どの実装が動いているかわかります。

よくあるエラーと終了コード

終了コード・メッセージ 意味 対処
0 成功 なし
11 mkdir ... failed コピー先の親フォルダがない --mkpath、またはパスを確認
23 一部のファイルを転送できなかった(権限など) 直前のメッセージで対象ファイルを確認
24 転送中にコピー元のファイルが消えた ログなど頻繁に変わるフォルダでは起こりうる
25 --max-delete の上限で削除を止めた dry-run で削除対象を確認
255 connection unexpectedly closed ssh の接続に失敗 ssh ホスト名 単体で接続を確認
--link-dest arg does not exist link-dest のパスが見つからない コピー先からの相対パスか絶対パスで指定

よくある質問

Q. rsyncでファイルを「移動」できますか? A. --remove-source-files を付けると、転送が終わったファイルをコピー元から削除します。フォルダは残るので、空のフォルダは別途削除します。まず -n で対象を確認してから使うと安心です。

Q. -z(圧縮)はいつも付けたほうがよいですか? A. ssh越しでテキストが多いときに効果があります。ローカルのコピーや、画像・動画・圧縮ファイルが中心のときは効果が小さいので、付けなくてかまいません。

Q. 同期の前に何が起きるか確かめたいです。 A. -n(--dry-run)を付けます。-i も付けると、ファイルごとに「新規・更新・削除」が記号でわかります。特に --delete を使うときは、先に dry-run で deleting の行を確認します。

Q. 定期的に自動で実行したいです。 A. cron や systemd タイマーに登録します。ssh経由の場合はパスフレーズなしの専用鍵を用意し、サーバー側の authorized_keys で使えるコマンドを制限すると安全です。スクリプトには --max-delete を付けておくと、想定外の削除を防げます。

まとめ

  • rsyncは差分だけを送って、コピー元とコピー先をそろえるコマンド。基本は rsync -av src/ dst/
  • コピー元の末尾 / ありは「中身だけ」、なしは「フォルダごと」
  • -a は -rlptgoD。ハードリンク・ACL・拡張属性は -H -A -X を追加
  • --delete の前に -n で dry-run。--max-delete=0 と --backup-dir で安全に
  • 除外パターンの先頭 / はコピー元の直下、末尾 / はフォルダだけ。特定の拡張子だけなら --include='*/' --include='*.md' --exclude='*' -m
  • ssh経由は ~/.ssh/config のホスト名がそのまま使える。大きなファイルは -P で再開可能に
  • --link-dest の世代バックアップは、3世代でもほぼ1世代分の容量で済んだ

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「rsyncの使い方|オプション一覧と目的別コピペ例(実行結果つき)」

株式会社RJCでは、バックアップや同期のような縁の下の作業も、実際に試して安全な手順を仲間と共有しています。こうした知識を共有しながら、日々技術を磨いています。

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?